具有构造函数的对象的条件类型

时间:2018-12-27 16:32:39

标签: typescript constructor immutable.js

当我使用Immutable.js时,我使用了一些自定义类型,这些类型使我的生活更加轻松。其中一个预测不可变映射的属性是在其原始状态(原始)还是作为另一个不可变映射获得。我可以通过以下条件类型实现此目标:

type ImmutablePrimitive = string | number | boolean | symbol | String | Number | Boolean | Symbol | Element;

type ImmutablePrimitiveSwitchValue<VALUE_TYPE> = VALUE_TYPE extends ImmutablePrimitive ? VALUE_TYPE : Immutable.Map<any, any>;

ImmutablePrimitiveSwitch检查传递给它的类型是否在少量原始类型列表中被命名-如果使用的是该类型,则返回通用映射。

这在大多数情况下效果很好,但与Immutable实际不同。引擎盖下的Immutable具有“普通”对象that are defined as objects that do not have constructors的概念。

Typescript可以对条件类型执行类似的检查吗?我很希望能够用与Immutable的逻辑相匹配的适当检查来替换不完整的文字列表。

0 个答案:

没有答案