📝 单继承
// 基础接口
interface Person {
name: string;
age: number;
}
// 继承扩展
interface Employee extends Person {
employeeId: string;
department: string;
}
const employee: Employee = {
name: 'Alice',
age: 30,
employeeId: 'E001',
department: 'Engineering'
};
🔀 多重继承
interface Named {
name: string;
}
interface Aged {
age: number;
}
interface Identified {
id: string;
}
// 多重继承
interface Person extends Named, Aged, Identified {
email: string;
}
const person: Person = {
id: 'P001',
name: 'Alice',
age: 30,
email: 'alice@example.com'
};
💡
多重继承
TypeScript 接口支持多重继承,可以同时继承多个接口,用逗号分隔。
🔄 属性覆盖
interface Base {
id: number | string; // 联合类型
name: string;
}
// 子接口可以覆盖父接口的属性类型
interface Derived extends Base {
id: number; // 收窄类型
name: string; // 保持一致
extra: boolean; // 新增属性
}
const obj: Derived = {
id: 123, // 只能是 number
name: 'Alice',
extra: true
};
⚠️
类型覆盖限制
子接口覆盖的属性类型必须是父类型的子类型,不能扩大类型范围。