一种类型可以通过以下形式被引入
·type t = number | string;interface I { x: number[]; }class C { }enum E { A, B, C }import 声明指向一个类型Value是我们可以在表达式中引用的运行时名称,可以通过以下的形式创建value
let x: A.B.C 声明,我们说类型 C 来自命名空间 A.BA首先用作命名空间,然后用作类型名称,然后用作值let m:A.A = A;
class C {} 创建了两项内容C是类C的实例原型C是类C的构造函数export var Bar: { default: Bar } = { default: { count: 10 } };
export interface Bar {
count: number;
}
import { Bar } from './bar';
console.log(Bar);
let x: Bar = Bar.default;
console.log(x.count);
namespace X {
export interface Y { }
export class Z { }
}
X(因为 namespace 声明包含了值 Z)X(因为 namespace 声明包含了类型 Y)Y 在命名空间 X 中Z 在命名空间 X 中(类的实例原型)Z,属于 X 值的属性(类的构造器)namespace X {
export var Y: number;
export namespace Z {
export class C { }
}
}
type X = string;
Y (number 类型,X 值的属性)ZZ (X 值的属性)C (在命名空间 X.Z 中)C (X.Z 值的属性)X