的主要目标:我正在努力学习(并且理解,而不仅仅是复制和粘贴)如何在类型记录中创建一个工厂,但是在类型和类型推断方面有一些混淆点。我希望"MyCloner“类能够创建一个IClonable的多个实例。= T extends new () => infer R ?据我所知,我们正在声明某种类型,它看起来具有获取一个名为T的泛型的能力,然后它看起来就像是在扩展函数"new“(据我所知,它是一个保留关键字)。但R、T和“新”是如何相互关联的呢?第二个混
extends keyof VehicleTypes>(name: T): InstanceType<VehicleTypes[T]> {(Type 'Car | Bike' is not assignable to type 'InstanceType<{ car: typeof Car; bike: typeofType
对于我的代码的其他部分(未显示)来说,将seedKey变量类型保持为keyofT非常重要。这看起来非常直截了当,我没有预料到任何错误,但结果如下:
Type '{ [x: string]: string; }' is not assignable to type 'Record<keyofTypeScript编译器抱怨具有字符串索引的对象(再次.seedKey是keyofT,它可能是一个符号!)