使用接口表示混合类型
当一个对象既可以被当做函数使用,又可以作为对象拥有多个属性的时候,我们可以用接口来描述这个对象的形状:
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();
