TypeScript的组件
TypeScript语言被内部划分为三个主要层。每个层都被细分为子层或组件。在下图中,我们可以看到这三个层和它们各自的内部组件。这些层是:
- 语言
- TypeScript编译器
- TypeScript语言服务
1. 语言
它包含TypeScript语言元素。它包括类似于语法、关键词和类型注释的元素。
2. TypeScript编译器
TypeScript编译器(TSC)将TypeScript程序转换为其JavaScript代码等价物。它还执行我们的TypeScript代码到JavaScript代码的解析和类型检查。
浏览器不支持直接执行TypeScript代码。因此,必须用支持在浏览器中直接执行代码的JavaScript等价代码重新编写用TypeScript编写的程序。为了执行这个操作,TypeScript带有名为“tsc”的TypeScript编译器。当前版本的TypeScript编译器默认支持ES6。它可以编译任何模块的源代码,例如ES6、SystemJS、AMD等。
我们可以通过本地、全局或与任何npm软件包一起安装TypeScript编译器。安装完成后,我们可以在命令行上运行“tsc”命令来编译TypeScript文件。
示例:
$ tsc helloworld.ts //它将TS文件helloworld编译为helloworld.js文件。
编译器配置
TypeScript编译器配置在tsconfig.json文件中给出,如下所示:
{
"compilerOptions": {
"declaration": true,
"emitDecoratorMetadata": false,
"experimentalDecorators": false,
"module": "none",
"moduleResolution": "node",
"noFallthroughCasesInSwitch": false,
"noImplicitAny": false,
"noImplicitReturns": false,
"removeComments": false,
"sourceMap": false,
"strictNullChecks": false,
"target": "es3"
},
"compileOnSave": true
}
声明文件
当我们编译TypeScript源代码时,它提供了一个选项来生成扩展名为.d.ts的声明文件。此文件作为已编译JavaScript中组件的接口。如果文件具有扩展名.d.ts,则每个根级别定义必须带有前缀为declare的关键字。这表明TypeScript不会发出任何代码,从而确保在运行时存在声明的项。声明文件为类似jQuery的JavaScript库提供IntelliSense。
3. TypeScript语言服务
语言服务提供帮助编辑器和其他工具提供更好的辅助功能的信息,例如自动重构和IntelliSense。它在核心编译器管道周围公开了一个附加层。它支持一些标准的典型编辑器操作,如代码格式化和大纲、颜色编码、语句完成、签名帮助等。