聲明合并
一個辨別符可以表示一個值、也可以表示一個類型或者一個命名空間。對于同一個辨別符而言,它可以同時表示多個含義。如果同一聲明空間内使用的辨別符必須唯一。如果同一聲明空間記憶體在同名的聲明時,編譯器會嘗試将所有同名的聲明合并為一個聲明。如果無法進行聲明合并,就會産生編譯錯誤。合并的會按照值對值、類型對類型,命名空間對命名空間的方法合并。
const zss = 5;
interface People {
name: 'test',
age: 22
}
namespace Tea {}
interface X {
[prop: string]: string;
}
interface X {
[prop: number]: string;
}
interface People {
[prop: string]: string;
[prop: number]: string;
}
枚舉聲明合并
enum X {
Y
}
enum X {
U = 6,
}
enum X {
R = 7,
}
let o: X;
o = X.Y;
o = X.U;
o = X.R;
其餘
class People {
inner: People.Inner = new People.Inner();
}
namespace People {
export class Inner {}
}