在 TypeScript 中,接口(Interface)用于定义对象的结构和类型。接口描述了对象应该具有的属性、方法和类型约束,它们提供了一种结构化的方式来定义和使用数据。
接口的定义使用 interface 关键字,可以包含属性、方法、索引签名等。以下是一个简单的接口定义示例:
typescript
interface Person {
name: string;
age: number;
sayHello: () => void;
}
在上面的示例中,我们定义了一个名为 Person 的接口,它要求具有 name 属性(字符串类型)、age 属性(数字类型)和 sayHello 方法(没有参数和返回值)。
接口的使用主要有两种方式:对象实现接口 和变量类型注解。
- 对象实现接口:
通过实现接口,我们可以确保对象的结构符合接口的要求。示例如下:
typescript
interface Person {
name: string;
age: number;
sayHello: () => void;
}
const person: Person = {
name: "John",
age: 25,
sayHello: () => {
console.log("Hello!");
},
};
}
在上面的示例中,我们创建了一个 person 对象,并确保它符合 Person 接口的结构要求。
- 变量类型注解:
我们可以使用接口作为变量的类型注解,来限制变量的类型。示例如下:
typescript
interface Person {
name: string;
age: number;
sayHello: () => void;
}
function greet(person: Person) {
console.log(`Hello, ${person.name}!`);
}
const john = {
name: "John",
age: 25,
sayHello: () => {
console.log("Hello!");
},
};
greet(john);
在上面的示例中,我们定义了一个 greet 函数,它接受一个参数 person,类型为 Person 接口。在调用 greet 函数时,传入符合 Person 接口要求的对象 john。