使用接口表示混合类型
当一个对象既可以被当做函数使用,又可以作为对象拥有多个属性的时候,我们可以用接口来描述这个对象的形状:
interface Slider {
(list: string[]): string;
name: string;
start(): void;
}
function initSlider(): Slider {
let slider = <Slider>function(list: string[]) {};
slider.name = "iSlider";
slider.start = function() {};
return slider;
}
let mySlider = initSlider();
mySlider(["a.png", "b.png"]);
mySlider.name = "MySlider";
mySlider.start();