我在下面的代码中遇到TS类型检查错误。
Item
确切地说,在第12行上,我收到错误TS2322:键入'{id:null; }”不可分配给“ R”类型。 TypeScript不应该理解,因为“ R扩展了资源”,所以可以使用具有资源类型形状的值来初始化数据。
在第36、37行上,TS确实进行了类型检查。
答案 0 :(得分:1)
您需要告诉数据对象您分配给它的实际上是R
abstract class ResourceComponent<R extends Resource> {
protected state: ResourceState<R> = {
data : { // Type checking KO
id: "null"
} as R,
hash: ''
};
}