我是JS的新手。我创建了一个自定义类型“ Stage”。我想将字符串转换为这些类型。字符串将完全等于这些值中的一个(首字母大写,写相同)。我一直在尝试使用.find()完成某件事,但这似乎并不是走的路,因为它需要一个数组。任何帮助表示赞赏!
type Stage = 'First' | 'Second';
答案 0 :(得分:0)
在TypeScript中,type Stage
...语句有点令人困惑,因为它创建了type alias而不是实际类型。不需要在运行时将string
转换为Stage
,因为在运行时Stage
是string
。
TypeScript enum可能更接近您要寻找的内容。它创建一个可用于与字符串进行转换的对象。尝试执行以下测试/演示例程:
import test from 'ava';
enum Stage {
First = 1,
Second = 2
}
test('Testing Stage conversion between string and number ', t=> {
const stringName = "First";
t.is(Stage.First, 1);
t.is(Stage[stringName], 1);
t.is(Stage.Second, 2);
t.is(Stage[1], "First");
t.is(Stage[2], "Second");
t.is(Stage["foo"], undefined);
t.pass();
})