我试图在Typescript中更深入地理解高级类型,其中一种类型是NonFunctionPropertyNames,它只提取给定对象的一个属性。type NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends Function ?never : K }[keyof T]; 我可以理解花括号'{ [K in keyof T]: T[K] extends Function ?never : K }
我偶然发现了TypeScript类型的问题,当有条件的泛型出现时,我不能将更窄的类型分配给更广泛的类型。但是,所有泛型参数都是完全实例化的,因此TypeScript应该能够完全解析这两种类型,并根据每个属性的类型对它们进行比较。in keyof T]: T[K] extends Types ?assignable to type 'boolean'.
// Type 'strin