Как я могу использовать значение const в качестве типа? - PullRequest
1 голос
/ 08 апреля 2020
const X = "x";
let a:"x"; // This is allowed
let b:X;   // This is not allowed

Можно ли как-то убедить машинопись в разрешении использовать строку 3 выше? Я буду использовать эту строку для проверок et c во многих местах, и было бы неплохо использовать постоянное значение в качестве типа.

1 Ответ

3 голосов
/ 08 апреля 2020

После объявления X, затем извлеките его тип с помощью typeof и используйте этот тип в другом месте:

const x = "x";
type xType = typeof x;

let b: xType;
// OK:
b = 'x';
// Error:
b = 'y'

Поскольку x является const, тип выводится как присвоенный ему литерал 'x'. (Если вы использовали let, вам нужно было бы ввести его с комментариями: let x: 'x' = 'x'; или let x = 'x' as const)

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