如何增加“类型实例化的深度过深甚至可能无限”的限制

时间:2019-06-02 15:15:21

标签: typescript

我有一个复杂的映射类型,无论如何它都不是无限的。

如果源类型很大,并且将其用作我的复杂映射类型的通用参数,则有时会遇到“类型实例化过深甚至可能是无限的”。

我在整个地方都使用infertype Cast<T, CastType> = T extends CastType ? T : CastType组合来增加限制,但是这并不能使我走得足够远,例如:

type ComplexMapping<Source> = (<mapping here>) extends infer M 
  ? Cast<M, any> // I set a specific type if possible
  : never

我可以使用哪些方法来增加限制?

还,类型化的泛型参数(MyType<T extends Typed> = {})是否增加了类型实例化的深度?

0 个答案:

没有答案