首页 > 解决方案 > TypeScript 类泛型实例从不推断

问题描述

interface TreeRaw {
  ID: string;
  parentID: string;
  seq: number;
  [props: string]: any;
}

class Tree<T extends TreeRaw = TreeRaw> {
  data: T[];

  constructor(rawData: T[]) {
    this.data = rawData;
}

const tree = new Tree([]);

树推断树

为什么实例树推断Tree<never>而不是Tree<TreeRaw>

Tree<TreeRaw>当我不输入泛型时,我该怎么做才能获得实例推断?

标签: typescripttypescript-typingstypescript-generics

解决方案


可能是因为空数组 ( []) 无法推断为TreeRaw[].

这个会正确推断

const tree = new Tree([] as TreeRaw[]);

推荐阅读