typescript - 泛型类中部分记录不可分配
我不能将 {b: 1} 分配给 foo,但使用 bar 和 baz 时可以。
在这个代码中,我尝试排除 A 的所有字段。继承中的其他字段应该被允许
类型 '{ b: number; }' 不能分配给类型 'Partial
, unknown>>' ts(2322)
class A {
a: string
}
class B extends A{
b: number
}
class C extends B {
c: string
}
type keyOfModel<T extends B> = keyof Omit<T, keyof A>
const bar: Partial<Record<keyOfModel<B>, unknown>> = {b: 1 }
const baz: Partial<Record<keyOfModel<C>, unknown>> = {b: 1 }
function Test<T extends B>() {
const foo: Partial<Record<keyOfModel<T>, unknown>> = {b: 1 }
}
Typescript 4.5.4