基本概念
ypeScript中的声明会创建以下三种实体之一:命名空间,类型或值。 创建命名空间的声明会新建一个命名空间,它包含了用(.)符号来访问时使用的名字。 创建类型的声明是:用声明的模型创建一个类型并绑定到给定的名字上。 最后,创建值的声明会创建在JavaScript输出中看到的值。
接口合并
- 从根本上说,合并的机制是把双方的成员放到一个同名的接口里。
- 接口的非函数的成员应该是唯一的。如果它们不是唯一的,那么它们必须是相同的类型。
interface Box {
width: number;
height: number;
transform(force: string): void;
}
interface Box {
// width: string; // 后续属性声明必须属于同一类型。
transform(force: number, radius: number): void;
}
const box: Box = ({
width: 400,
height: 600,
transform(force: number, radius: number) {}
}) as Box
- 对于函数成员,每个同名函数声明都会被当成这个函数的一个重载。 同时需要注意,后面的接口具有更高的优先级;
interface Document {
createElement(tagName: any): Element;
}
interface Document {
createElement(tagName: string): HTMLElement;