在运行时从数组值的观察值派生联合类型

时间:2019-07-02 06:42:33

标签: typescript union-types

我有一个带有下一个类型定义的Typescript代码:

export type MeasurementContext = 'height' | 'speed' | 'temperature';

我想在执行时从对服务器的配置请求中获取该测量列表,而不是从const值中获取,但是我无法使其正常工作。

我尝试使用类似这样的东西:

let list = getConfigMeasurements() as const // returns ['height' | 'speed' | 'temperature']
type NeededUnionType = typeof list[number]; // 'height'|'speed'|'temperature';

但是它返回数字是一种类型,但是像变量一样使用。

1 个答案:

答案 0 :(得分:1)

“我想在执行时从配置请求向服务器导出该测量列表。”

Typescript类型在运行时不存在,它们在程序编译的第二秒就被删除;有一些方法可以利用基于typescript-transformer API的类型来生成代码....在这种情况下,我会说它不属于惯用的typescript,因此应避免使用。

https://github.com/Microsoft/TypeScript/wiki/FAQ#what-is-type-erasure