如何遍历打字稿中的自定义文字类型?

k0pernikus:

我在打字稿中定义了一个自定义文字类型:

export type Market = 'au'|'br'|'de';

现在,我想遍历每种可能的方法,Market而不必首先创建一个数组,Market[]因为它感觉很多余,我可能会忘记添加一个选项:

const markets: Market[] = ['au', 'br', 'de'];
markets.forEach((market: Market) => {
    console.log(market);
});

有没有办法用打字稿实现呢?

蒂姆·佩里(Tim Perry):

不,您不能那样做,因为在运行时不存在类似的纯类型信息。

假设以另一种方式(定义一个正常的字符串列表,然后从中导出'au'|'br'|'de'类型)是可行的,但是我认为TypeScript编译器(2.0或2.1)目前不会为您推断这一点。我知道市场类型永远都是string[]正常的。

正确的答案是使用枚举。他们用它们的每个值定义一个类型,并且可以获得所有字符串值的列表:如何在Typescript 0.9.5中以编程方式枚举枚举类型?

枚举的一个缺点是它们的运行时表示形式是不同的(实际上,它们实际上是数字,而不是字符串)。但是,您的代码仍然可以将它们视为可读性强的值,只是如果您在运行时需要将它们用作字符串名称,则必须将它们转换为字符串。不过,这很容易:给定enum MarketEnum和一个value myEnumValueMarketEnum[myEnumValue]即该值的名称(以字符串形式)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何正确导入打字稿中的自定义类型

如何创建自定义类型打字稿的数组

打字稿自定义映射类型

如何在打字稿2.0 / 3.0中添加自定义“类型”

如何在打字稿中创建自定义数据类型?

如何遍历打字稿中定义的json

如何在打字稿中添加自定义类型以扩展具有某些条件的基本类型

打字稿:如何将特定的库方法转换为自定义类型定义

打字稿2:node_modules中的自定义类型定义

打字稿:泛型的自定义类型防护?

打字稿:对照自定义类型检查“ typeof”

打字稿| 无法循环自定义类型对象

打字稿字符串或自定义类型

打字稿自定义钩子,事件类型问题

如何导入打字稿中的类型定义?

打字稿:如何声明具有从 IIFE 返回的自定义属性的函数的类型

如何将打字稿动态类型作为参数传递给自定义钩子?

打字稿无法推断自定义钩子中的解构数组类型

C#中的自定义类型(类似于打字稿)

如何在Go中遍历自定义类型的数组?

如何使用打字稿在猫鼬模型中定义自定义查询助手?

如何使用打字稿在反应功能组件中定义自定义道具?

打字稿中的自定义全局变量

打字稿中数组上的自定义键

如何在打字稿中实现自定义错误类?

如何解决自定义反应组件中 createContext 的打字稿错误

打字稿:如何在.d.ts文件中声明自定义Map和Array

如何使Jest自定义匹配器在打字稿中工作?

打字稿自定义属性名称