通用类型错误TS2322:类型'{id:null; }”不可分配给“ T”类型

时间:2019-01-05 12:02:36

标签: typescript

我在下面的代码中遇到TS类型检查错误。

Item

确切地说,在第12行上,我收到错误TS2322:键入'{id:null; }”不可分配给“ R”类型。 TypeScript不应该理解,因为“ R扩展了资源”,所以可以使用具有资源类型形状的值来初始化数据。

在第36、37行上,TS确实进行了类型检查。

https://stackblitz.com/edit/typescript-rthmqv

1 个答案:

答案 0 :(得分:1)

您需要告诉数据对象您分配给它的实际上是R

abstract class ResourceComponent<R extends Resource> {
  protected state: ResourceState<R> = {
    data : { // Type checking KO
      id: "null"
    } as R,
    hash: ''
  };
}