TypeScript中的类行为

时间:2018-04-19 11:42:19

标签: javascript typescript

代码在函数中使用不同的参数时工作。类如何在打字稿中起作用?

interface icar { 
getcar(name: string, age: string): void;
}

class Car implements icar{

    getcar() {
        console.log('anything');
    }

}

var newCar:any = new Car();
newCar.getcar('name');

1 个答案:

答案 0 :(得分:0)

interface实现者可以自由接受更少的参数,而不是接口定义的参数。原因很简单,函数可能不想首先使用参数的值,因此省略它并不会改变函数的工作方式。传递比定义参数更多的参数也不会导致运行时错误。此外,该函数可能在内部使用arguments而不是函数签名中的参数; Typescript允许省略参数的另一个原因。

但是,函数的调用者必须传递接口签名中定义的参数。无论具体实现是否使用参数,如果调用者没有遵守定义的接口,那么实现 的工作就不能保证。

Typescript不会在newCar.getcar('name')上引发错误的原因是您已使用:any覆盖类型推断,这会导致Typescript暂停{{1}上的所有类型检查}}。删除newCar和Typescript会抱怨参数数量不匹配。