Javascript, как сделать объект разрешить любой ключ - PullRequest
0 голосов
/ 22 октября 2018

В Angular (машинопись), скажем, я инициирую эту переменную:

myVar = {}

Затем я выполняю вызов, который назначает эту переменную большему объекту:

... this.myVar = response

Затем, когда я хочу получить доступ к чему-то на этом измененном объекте, я продолжаю получать ошибки, что ключи не существуют.Например, с этим кодом this.myVar.Name выдаст ошибку Property "Name" does not exist on type '{}'.Как я могу просто обойти эту ошибку?

Что-то вроде myVar: any выполняет свою работу, но я все же хотел бы по крайней мере объявить его как объект с чем-то вроде = {}.

Iищу что-то вроде {any} или any{}

Ответы [ 4 ]

0 голосов
/ 22 октября 2018

Следующее должно работать

let myVar: any = {};
0 голосов
/ 22 октября 2018

Это проблема для типов машинописи , и для этого я бы порекомендовал добавить тег для машинописи в вашем вопросе.Я думаю, что вы можете использовать object тип , он делает именно то, что вы хотите, то есть принимает любой вид ключа.Таким образом, код будет: const yourVar: object = {};

0 голосов
/ 22 октября 2018

Вы можете напечатать его как объект с переменными ключами:

 let myVar: { [key: string]: any } = {};

, чтобы вы могли добавить более детализированные наборы к объекту.

0 голосов
/ 22 октября 2018

Просто сделайте его типа any.

myVar: any;

Или лучше , вы можете создать интерфейс для представления типа myVar,скажем, у вас есть модальный Product, который имеет свойства: name, price, description etc..., а затем myVar: Product

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...