Тип «символ» не может быть назначен типу - PullRequest
0 голосов
/ 12 мая 2018

Чтение ссылка .

Вместо использования константных объявлений переменных,

const directionUp: symbol = Symbol();
const directionDown: symbol = Symbol();
const directionLeft: symbol = Symbol();
const directionRight: symbol = Symbol();

с использованием типа enum в приведенном ниже коде,

enum Direction {
    Up = Symbol(),
    Down = Symbol(),
    Left = Symbol(),
    Right = Symbol(),
}

Как устранить ошибку ниже?

$ tsc --version
Version 2.8.3
$ tsc
tstut.ts(2,10): error TS2322: Type 'symbol' is not assignable to type 'Direction'.
tstut.ts(3,12): error TS2322: Type 'symbol' is not assignable to type 'Direction'.
tstut.ts(4,12): error TS2322: Type 'symbol' is not assignable to type 'Direction'.
tstut.ts(5,13): error TS2322: Type 'symbol' is not assignable to type 'Direction'.

1 Ответ

0 голосов
/ 12 мая 2018

A Symbol нельзя использовать для перечисления, только строки и числа.

И это необязательно, поскольку использование Symbol должно быть уникальным идентификатором, носвойство enumarion уже соответствует этому запросу:

enum E1 {
   First = 1
}

enum E2 {
   First = 1
}

const p: E2 = E1.First; // error, even if the two values are theoretically compatible.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...