interface和type区别
时间: 2023-08-31 12:10:38 浏览: 170
Typescript 中的 interface 和 type 到底有什么区别详解
5星 · 资源好评率100%
在 TypeScript 中,`interface` 和 `type` 都可以用来定义对象类型,但它们有一些不同之处。
`interface` 是用来描述一个对象的结构,包括属性名、属性类型和方法等。它可以被类、函数和对象实现,可以继承其他接口,并且可以被合并。例如:
```typescript
interface Person {
name: string;
age: number;
sayHello(): void;
}
class Student implements Person {
name = 'Tom';
age = 18;
sayHello() {
console.log(`Hello, my name is ${this.name}, I'm ${this.age} years old.`);
}
}
const tom: Person = new Student();
tom.sayHello(); // Hello, my name is Tom, I'm 18 years old.
```
`type` 是用来定义类型别名,可以用来给已有类型起一个新名称。它不能被继承,但可以被联合、交叉等操作符使用。例如:
```typescript
type Person = {
name: string;
age: number;
sayHello(): void;
};
class Student implements Person {
name = 'Tom';
age = 18;
sayHello() {
console.log(`Hello, my name is ${this.name}, I'm ${this.age} years old.`);
}
}
const tom: Person = new Student();
tom.sayHello(); // Hello, my name is Tom, I'm 18 years old.
```
总的来说,`interface` 更适合用来描述抽象的概念、接口和类,而 `type` 更适合用来定义具体的类型别名。
阅读全文