TypeScript 高级特性:接口、类与装饰器深度解析
1. 接口扩展与交叉类型
在 TypeScript 里,接口扩展时会有严格的可赋值性检查。比如:
interface A {
good(x: number): string
bad(x: number): string
}
interface B extends A {
good(x: string | number): string
bad(x: string): string // Error TS2430: Interface 'B' incorrectly extends
} // interface 'A'. Type 'number' is not assignable
// to type 'string'.
这里 B 扩展 A 时, bad 方法的参数类型不兼容,就会报错。不过,使用交叉类型时情况不同。若把接口换成类型别名,用 & 进行交叉,TypeScript 会尽力合并扩展类型,避免编译错误。
2. 声明合并
在同一作用域中,同名的多个接口会自动合并,这就是声明合并。例如:
// User has a single field,
超级会员免费看
订阅专栏 解锁全文
992

被折叠的 条评论
为什么被折叠?



