Просто удалите явное объявление data
, чтобы быть Object
так, что машинопись будет определить тип, то есть изменить его на что-то вроде этого
let content:Array<string> = ["I", "am", "a", "beginner"]
let data = {a: "foo", b: content}
console.log(data.a);
console.log(data['b']);
console.log(data.b);
причины вашей ошибки в вашем исходном коде, потому что вы сообщая компилятору TypeScript, что data
имеет тип Object
или любой производный класс, из которого: поскольку тип Object
не имеет свойств a
или b
, это приводит к ошибке.
Пожалуйста, обратите внимание, что удаление явной аннотации типа не то же самое, как с помощью any
как предложено AD.Net как в этом случае машинописи до сих пор имеет всю информацию о типе доступной - просто выведенной (см скриншота Visual Studio кодекса), в то время как на используя any
, вы сообщаете компилятору TypeScript, что переменная может ссылаться на все, что не приводит к проверке типа.
Вы можете принять ответ (через зеленый галочкой) в 15 мин прошло – DAXaholic
Как я могу принять ваш ответ? (извините, я новичок) –
Нет причин жалеть - см. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – DAXaholic