1. 对象属性接口:
用于描述对象应该具有的属性和它们的类型。
interface Person {
firstName: string;
lastName: string;
age: number;
}
let person: Person = {
firstName: "John",
lastName: "Doe",
age: 30
};
2. 可选属性:
通过在属性名后加上 ? 来表示可选属性。
interface Car {
brand: string;
model: string;
year?: number; // 可选属性
}
let myCar: Car = {
brand: "Toyota",
model: "Camry"
};
3. 只读属性:
使用 readonly 关键字表示只读属性,一旦赋值后不能再修改。
interface Point {
readonly x: number;
readonly y: number;
}
let point: Point = { x: 10, y: 20 };
// point.x = 5; // 错误,只读属性不可修改
4. 函数类型接口:
用于描述函数的参数和返回值类型。
interface Calculator {
(a: number, b: number): number;
}
let add: Calculator = (x, y) => x + y;
5. 类类型接口:
描述类的实例部分和静态部分的类型。
interface Clock {
currentTime: Date;
setTime(d: Date): void;
}
class ClockImplementation implements Clock {
currentTime: Date = new Date();
setTime(newTime: Date): void {
this.currentTime = newTime;
}
}
6. 继承接口:
一个接口可以继承自另一个接口,从而拥有被继承接口的所有成员。
interface Shape {
color: string;
}
interface Square extends Shape {
sideLength: number;
}
let square: Square = {
color: "red",
sideLength: 10
};
7. 混合类型接口:
描述一个同时具有多个类型的对象。
interface Counter {
(): number;
reset(): void;
}
function createCounter(): Counter {
let count = 0;
let counter = () => count++;
counter.reset = () => count = 0;
return counter;
}
let myCounter = createCounter();
console.log(myCounter()); // 0
myCounter.reset();
console.log(myCounter()); // 0
这些是 TypeScript 中接口的基本用法。接口提供了一种结构化的方式来定义对象的形状,使代码更具可读性和可维护性。接口的使用还能提高代码的灵活性,特别是在多人协作或开发大型应用程序时。
转载请注明出处:http://www.zyzy.cn/article/detail/4695/TypeScript