- type 可以用來給一個型別起個新名字,當命名基本型別或聯合型別等非物件型別時非常有用, 而介面不行
type MyNumber = number;
type StringOrNumber = string | number;
type Text = string | string[];
2 型別別名透過 &(交叉運算子)來擴充套件,而介面透過 extends 的方式來擴充套件。都可以進行擴充套件
a 型別別名
type Animal = {
name: string
}
type Bear = Animal & {
honey: boolean
}
b 介面擴充套件
interface Animal {
name: string
}
interface Bear extends Animal {
honey: boolean
}
3 同名介面會自動合併,而型別別名不會
a 同名介面
interface User {
name: string;
}
interface User {
id: number;
}
let user: User = { id: 666, name: "阿寶哥" };
b 型別別名
type User = {
name: string;
};
// 識別符號“User”重複。ts(2300)
type User = { //Error
id: number;
};
參考文獻: https://blog.csdn.net/Jadon_z/article/details/134282333