首页 > 解决方案 > TypeScript:将文字字符串类型定义转换为字符串值(如 typeof 运算符),反之亦然?

问题描述

我想访问一个字符串字面量类型的字符串值,类似于C#中的typeof运算符,否则我必须定义两次...

myStringLiteral: 'STRING TYPE';

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

或者,如果相反的情况是可能的:

const myString:string =  'STRING TYPE';

myStringLiteral: myString;

标签: stringtypescripttypesconstants

解决方案


您不必使用显式类型注释让编译器推断常量的字符串文字类型(或手动指定字符串文字类型 not string)。

如果您的myString常量类型正确,您可以使用typeof在类型注释或类型定义中获取常量的类型:

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

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

let otherVar: typeof myString;

推荐阅读