在TypeScript中存在两种声明空间:类型声明空间和变量声明空间
类型声明空间
类型声明空间包含用来当做类型注解的内容,例如下面的类型声明:
1 | class Foo{} |
你可以将Foo,Bar,Bas作为类型注解使用:
1 | let foo: Foo; |
尽管你定义了interface Bar,却不能把它作为一个变量使用,因为它没有定义在变量声明空间中。
变量声明空间
变量声明空间包含可用作变量的内容,在上文中Class Foo提供了一个类型Foo到类型声明空间,此外它同样提供了一个变量Foo到变量声明空间
1 | class Foo {} |
一些用var声明的变量,也只能在变量声明空间中使用,不能用作类型注解
1 | const foo = 123; |