【问题标题】:Need to re-specify parameter types of class methods that implement interface methods?需要重新指定实现接口方法的类方法的参数类型?
【发布时间】:2018-09-12 15:37:15
【问题描述】:

Calculator 类是从 ICalculator 实现的,其中描述了所有方法及其类型,是否值得为类方法参数再次这样做?如果我删除,那么任何数据类型都可以传递给该方法。请告诉我如何正确写作,我刚开始学习TypeScript

interface ICalculator {
    add(num: number): number;
    subtract(num: number): number;
    multiply(num: number): number;
    divide(num: number): number;
    print(): void;
}

class Calculator implements ICalculator {
    protected _res: number = 0;

    add(num: number) {
        return this._res = num + this._res;
    }

    subtract(num: number) {
        return this._res = this._res - num;
    }

    multiply(num: number) {
        return this._res = num * this._res;
    }

    divide(num: number) {
        return this._res = this._res / num;
    }

    print(): void {
        console.log(`Currently value: ${this._res}`);
    }
}
let myCalc = new Calculator();

myCalc.add(260);
myCalc.subtract(12);
myCalc.multiply(12);
myCalc.divide(2);
myCalc.print();

【问题讨论】:

    标签: javascript typescript ecmascript-6


    【解决方案1】:

    不幸的是,您目前必须重新编写参数类型。这里是the open issue。您可以启用noImplicitAny 编译器选项来检查您是否没有遗漏任何类型注释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      相关资源
      最近更新 更多