TypeScript/TS 错误:用 class 定义对象时 Property ‘***‘ does not exist on type ‘***‘.

259 阅读1分钟

我们在使用 class 定一个类时,直接给类实例添加属性会报一个 TS 的错误:

class RegExpPiece {
  constructor() {
    this.email = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i;
  }
}

比如上面,this.email 会报错:

💥 Property 'email' does not exist on type 'RegExpPiece'.

因此,我们需要加上类型定义:

class RegExpPiece {
  email: RegExp; // 添加类型定义
  
  constructor() {
    this.email = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i;
  }
}

这样就避免了报错。

Reference

[1] stackoverflow.com/questions/4…