Машинопись: деструктурирование объекта с символами в качестве ключей - PullRequest
0 голосов
/ 02 января 2019

Почему этот код выдает ошибку Type 'symbol' cannot be used to index type '{ [x: string]: string; }'.:

let symbol = Symbol()
let obj = { [symbol] : 'value'}
let { [symbol]: alias } = obj
             // ^^^^^ the error is here

console.log(alias)

И самое главное, как я могу это исправить?

1 Ответ

0 голосов
/ 02 января 2019

Вам просто нужно объявить symbol как const, чтобы компилятор выводил для него буквальный тип, а не общий тип Symbol.

const symbol = Symbol()
let obj = { [symbol] : 'value'}
let { [symbol]: alias } = obj


console.log(alias)

This PR может быть полезно, когда машинопись выводит уникальный символ

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