pdf文档 Programming TypeScript

202.08 KB 3 页 0 评论
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档主要介绍了TypeScript的编译过程和类型系统。TypeScript代码首先被编译器解析为抽象语法树(AST),经类型检查后生成JavaScript代码,而不是直接编译成字节码。类型系统支持显式注解和自动推导两种方式,通常推荐少用显式注解。文档还详细说明了如何初始化TypeScript项目,包括安装必要的包、配置tsconfig.json和tslint.json文件,以及使用ts-node直接运行TypeScript代码。
AI总结
# 《Programming TypeScript》总结 ## TypeScript概述 TypeScript是一种静态类型语言,属于JavaScript的超集,性能优越,可在模块化系统中随时渐进式升级到更高版本。 ### 编译器工作原理 1. **源代码解析**:编译器将开发者编写的代码解析成抽象句法树(AST),去除空白、注释和缩进符。 2. **AST转换字节码**:编译器将AST转换为字节码,供运行时程序计算,生成结果。 3. **运行时执行**:运行时程序解释并执行字节码,输出最终结果。 ### TypeScript的特殊编译过程 1. **TS源码转AST**:TypeScript编译器将源代码解析为AST,并进行类型检查。 2. **AST转JavaScript**:经类型检查后的AST被编译成JavaScript源代码。 3. **JavaScript处理**:生成的JavaScript代码再次被解析为AST,转换为字节码并执行。 **注意**:TypeScript编译为JavaScript时不涉及类型信息,类型仅在检查阶段使用,生成的代码不受影响。 --- ## 类型系统 TypeScript支持两种类型系统: 1. 显式注解:通过代码注解告知编译器变量类型。 2. 自动推导:编译器自动推断变量类型,无需显式注解。 **建议**:优先使用自动推导,仅在必要时使用显式注解。 --- ## 安装与配置 ### 初始化项目 1. 初始化npm项目: ```bash npm init --yes ``` 2. 安装必要依赖: ```bash npm install --save-dev typescript tslint @types/node ``` 3. 初始化配置文件: ```bash npx tsc --init npx tslint --init ``` ### 配置说明 #### tsconfig.json ```json { "compilerOptions": { "lib": ["ES2015"], "module": "commonjs", "outDir": "dist", "sourceMap": true, "strict": true, "target": "es5" }, "include": ["src"] } ``` - 定义编译选项:包括目标Library、module系统、输出目录、Source Map等。 - 指定包含编译文件:仅编译"src"目录下的文件。 #### tslint.json ```json { "defaultSeverity": "error", "extends": ["tslint:recommended"], "jsRules": {}, "rules": { "semicolon": false, "trailing-comma": false }, "rulesDirectory": [] } ``` - 配置默认规则严肃性为错误。 - 扩展推荐规则集,无需其他指定规则。 ### 开始开发 1. 创建目录及文件: ```bash mkdir src && touch src/index.ts ``` 2. 添加示例代码: ```typescript console.log('hello TypeScript'); ``` 3. 编译并执行: ```bash npx tsc node ./dist/index.js ``` --- ## 进阶工具 - **ts-node**:用于直接运行TypeScript代码,避免额外编译步骤。 ```bash npm i --save-dev ts-node ``` - **快速初始化脚手架工具**:使用typescript-node-starter快速创建新项目。 ```bash npx typescript-node-starter [projectname] ``` 通过以上步骤,您可以快速配置并开始TypeScript项目开发,同时利用其强大的类型系统提升代码质量。
P1
P2
P3
下载文档到本地,方便使用
文档评分
请文明评论,理性发言.