繁体   English   中英

当构造函数从实现的接口接收不同的参数类型时,Typescript编译器没有错误

[英]No error from Typescript compiler when constructor receives different parameters types as the ones from the implemented interface

我尝试了以下代码:

interface IRectangle {
    height: number;
    width: number;
    getArea: ()=>number;
}

module Shapes {
    export class Rectangle implements IRectangle {
        constructor(public height, public width) {
        }

        getArea() {
            return this.width * this.height;
        }
    }
}

console.log(new Shapes.Rectangle(12, 'a').getArea());

我期望在尝试向构造函数提供字符(最后一个代码行)时,即使接口(IRectangle)说两个字段都应为数字类型时,打字稿编译器也会给我一个错误。 但是我没有收到任何错误。 为什么这种行为背后的原因是什么?

如果您希望打字稿编译器看到此错误,则可以像构造函数一样声明构造函数(public height:number,public width:number)

要理解,为什么在您的示例中不这样做, 这里有一个很好的解释

在这里 ,类的静态端和实例端之间有一个重要的区别。 希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM