我有一个复杂的映射类型,无论如何它都不是无限的。
如果源类型很大,并且将其用作我的复杂映射类型的通用参数,则有时会遇到“类型实例化过深甚至可能是无限的”。
我在整个地方都使用infer
和type 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> = {}
)是否增加了类型实例化的深度?