一种类型可以通过以下形式被引入
·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.B
A
首先用作命名空间,然后用作类型名称,然后用作值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 值的属性)Z
Z
(X
值的属性)C
(在命名空间 X.Z
中)C
(X.Z
值的属性)X