是否需要重新指定实现接口方法的类方法的参数类型?

时间:2018-09-12 15:37:15

标签: javascript typescript ecmascript-6

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();

1 个答案:

答案 0 :(得分:0)

不幸的是,当前您必须再次编写参数类型。这是the open issue。您可以启用noImplicitAny编译器选项来检查是否没有错过任何类型注释。