今日问题:typescript中type和interface的区别?
Q:如果在前端面试中,被问到typescript的type和interface的区别是什么,怎么回答最好?
A:当谈论TypeScript中的type和interface时,可以更加详细地探讨它们的特点、用法和适用场景。以下是一份更详细的解释:
typescripttype MyString = string;
type Point = { x: number, y: number };
type Callback = (result: string) => void;
特点:
应用场景:
扩展性:
typescripttype A = { x: number };
type B = { y: number };
type C = A & B; // C = { x: number, y: number }
type D = C & {
z: number;
};
typescripttype Name = { firstName: string };
type Name = { lastName: string };
// 这会自动合并成一个类型: { firstName: string, lastName: string }
typescriptinterface Person {
name: string;
age: number;
greet(): void;
}
特点:
应用场景:
扩展性:
typescriptinterface A { x: number; }
interface B { y: number; }
interface C extends A, B { z: number; }
通常来说,如果你需要扩展或实现一个接口,或者用于描述对象的形状,那么使用 Interface 更合适;如果你需要更灵活地定义类型,或者需要使用联合类型、交叉类型等高级类型特性,那么使用 Type 更为合适。
本文作者:CreatorRay
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!