typescript泛型类无法编译?

class GenericNumber<T> {
  zeroValue: T;
  add: (x: T, y: T) => T;
}

编译失败:

tsc 3.4.3

src/ts/more.ts:225:3 - error TS2564: Property 'zeroValue' has no initializer and is not definitely assigned in the constructor.

src/ts/more.ts:226:3 - error TS2564: Property 'add' has no initializer and is not definitely assigned in the constructor.

官方文档竟然编译失败,求解.谢谢

阅读 3k
1 个回答

这跟是不是泛型无关啊,只要是个成员都是需要初始化的,要么定义时初始化,要么在构建函数里赋值。
比如,你可以

zeroValue?: T,相当于赋 undefined

或者通过构造函数参数传值进来

constructor(zero: T) {
    this.zeroValue = zero;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏