TypeScript: преобразовать определение литерального строкового типа в строковое значение (например, оператор typeof) или наоборот? - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу получить доступ к строковому значению строкового литерала типа, аналогичного оператору typeof в C #, в противном случае я должен определить его дважды ...

myStringLiteral: 'STRING TYPE';

myString:string = typeof(myStringLiteral); // Want myString = 'STRING TYPE'...

Или, если возможно обратное:

const myString:string =  'STRING TYPE';

myStringLiteral: myString;

1 Ответ

0 голосов
/ 15 февраля 2019

Вы не должны использовать явную аннотацию типа, чтобы позволить компилятору выводить строковый литерал для константы (или вручную указывать строковый литерал, а не string).

Если у вас есть myString константа набрана правильно, вы можете просто использовать typeof, чтобы получить тип константы в аннотации типа или определения типа:

const myString = 'STRING TYPE'; // typed as 'STRING TYPE'

type myStringLiteral = typeof myString; // myStringLiteral is 'STRING TYPE'

let otherVar: typeof myString;
...