почему я не могу получить доступ к свойствам объекта?

#typescript

#машинописный текст

Вопрос:

Я новичок в JavaScript и typescipt. Ниже приведен мой код:

 let myObj:Object = { foo: 'bar' };
let strVar:string = myObj.foo; // then it throw an error that "property foo does not exist on type 'Object'"
 

Итак, почему я не могу получить доступ к свойствам объекта?

Комментарии:

1. Это не ошибка javascript. Ошибка вызвана typescript. Эта ошибка будет устранена, если вы правильно установите тип myObj. Обратитесь к ответу Fullstack Guy.

2. Вы можете просто опустить тип, чтобы позволить компилятору сделать вывод.

Ответ №1:

Это верно, поскольку foo это не свойство Object типа. Вам необходимо внести следующие изменения:

 let myObj:{ foo: string } = { foo: 'bar' };
let strVar:string = myObj.foo;
 

Вы также можете объявить интерфейс:

 interface MyObject {
    foo: string;
}

let myObj: MyObject = { foo: "bar" };
let strVar:string = myObj.foo;