当我使用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的逻辑相匹配的适当检查来替换不完整的文字列表。