wangdoc / typescript-tutorial

TypeScript 教程
https://wangdoc.com/typescript
2.5k stars 270 forks source link

類:1.4 存取器方法一節,建議補充 #38

Closed Sayoko123f closed 1 year ago

Sayoko123f commented 1 year ago

原文

(2)set方法的参数类型,必须兼容get方法的返回值类型,否则报错。

class C {
  _name = '';
  get name():string {
    return this._name;
  }
  set name(value:number) {
    this._name = value; // 报错
  }
}

上面示例中,get方法的返回值类型是字符串,与set方法参数类型不兼容,导致报错。

描述

在 TypeScript 5.1 中, getter 與 setter 的參數類型不再有兼容限制

更新說明

也就是說,以下的例子現在是合法的

class C {
    _name = '';
    get name(): string {
        return this._name;
    }
    set name(value: number) {
        this._name = String(value)
    }
}
ruanyf commented 1 year ago

谢谢指出,已经更正。