新人学习ts不懂这两个区别啊!
interface Counter {
(start: number): string;
interval: number;
reset(): void;
}
function getCounter(): Counter {
let counter = <Counter>function (start: number) { };
counter.interval = 123;
counter.reset = function () { };
return counter;
}
接口中也能声明函数吗?!
接口只声明成员方法,不做实现。
类声明并实现方法。
那么接口有什么用呢?设想如下需求:
要实现一个
print
函数,它将传入的对象打印出来。在实际实现上,它将调用对象的getContent
方法:但是这样书写是有问题的,你知道Typescript当中是有类型检查的,必须要确保obj中存在getContent方法才能让print函数正常工作不报错。
比如:
但是这样的话print函数不就只能打印Article类的对象了吗,如果我想要让它能够打印不止一个类的对象呢?我如何保证他们都有getContent方法?
这时候就可以用到接口,来声明一个getContent方法,这样一来,每个实现该接口的类都必须实现getContent方法:
希望对你有帮助。