TypeScript 接口


作者:Seiya

时间:2019年08月02日


类实现接口


实现(implements)是面向对象中的一个重要概念。一般来讲,一个类只能继承自另一个类,有时候不同类之间可以有一些共有的特性,这时候就可以把特性提取成接口。这个特性大大提高了面向对象的灵活性。

interface Alarm {
	alert();
}

interface Light {
	lightOn();
	lightOff();
}

class Car implements Alarm, Light {
	alert() {
		console.log('Car alert');
	}
	lightOn() {
		console.log('Car light on');
	}
	lightOff() {
		console.log('Car light off');
	}
}



接口继承接口


interface Alarm {
	alert();
}

interface LightableAlarm extends Alarm {
	lightOn();
	lightOff();
}



接口继承类


class Point {
	x: number;
	y: number;
}

interface Point3d extends Point {
	z: number;
}

let point3d: Point3d = {x: 1, y: 2, z: 3};



混合类型


使用接口的方式来定义一个函数需要符合的形状:

interface SearchFunc {
	(source: string, subString: string): boolean;
}

let mySearch: SearchFunc;
mySearch = function(source: string, subString: string) {
	return source.search(subString) !== -1;
}

一个函数还可以有自己的属性和方法:

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;
}

let c = getCounter();
c(10);
c.reset();
c.interval = 5.0;
最后更新时间: 2019-8-2 12:02:10