- 第一章 基础篇
- 一、基本类型
- 二、任意值
- 三、类型推论
- 四、联合类型
- 五、对象的类型——接口
- 六、数组的类型
- 七、函数的类型
- 八、类型断言
- 九、类型别名
- 十、枚举
- 十一、类
- 十二、public private 和 protected
- 十三、泛型
- 十四、类型检查机制
- 十五、高级类型
- 十六、初学者的困惑
- 十七、其他技巧
- 第二章 工程篇
- 一、使用命名空间
- 二、理解联合声明
- 三、如何编写声明文件–引入类库
- 四、配置 tsconfig.json
- 五、编译工具 ts-loader、ts-lint
- 六、使用 jest 进行单元测试
- 第三章 项目实战
- 一、思维导图
- 二、React 项目实践
- 三、Vue 项目实践
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
四、配置 tsconfig.json
4.1 基础配置
{ // ===与文件相关的选项=== "files" : ['src/index.ts'], // 编译的文件列表 "include": ['src'], // 指定编译文件 "exclude": ['src/lib'], // 排除编译文件 // ====与编译相关的选项==== "compilerOptions": { // "incremental": true, // 增量编译,再次编译会增量编译 // "tsBuildInfoFile": "./buildFile", // 增量编译文件的存储位置 // "diagnostics": true, // 打印诊断信息 // "target": "es5", // 目标语言的版本 // "module": "commonjs", // 生成代码的模块标准 // "outFile": "./app.js", // 将多个相互依赖的文件生成一个文件,可以用在 AMD 模块中 // 比如你需要使用 es2019 方法 需要在这里导入模块 "lib": ['es2019.arrary'] // "lib": [], // TS 需要引用的库,即声明文件,es5 默认 "dom", "es5", "scripthost" // "allowJs": true, // 允许编译 JS 文件(js、jsx) // "checkJs": true, // 允许在 JS 文件中报错,通常与 allowJS 一起使用 // "outDir": "./out", // 指定输出目录 // "rootDir": "./", // 指定输入文件目录(用于输出) // "declaration": true, // 生成声明文件 // "declarationDir": "./d", // 声明文件的路径 // "emitDeclarationOnly": true, // 只生成声明文件 // "sourceMap": true, // 生成目标文件的 sourceMap // "inlineSourceMap": true, // 生成目标文件的 inline sourceMap // "declarationMap": true, // 生成声明文件的 sourceMap // "typeRoots": [], // 声明文件目录,默认 node_modules/@types // "types": [], // 声明文件包 // "removeComments": true, // 删除注释 // "noEmit": true, // 不输出文件 // "noEmitOnError": true, // 发生错误时不输出文件 // "noEmitHelpers": true, // 不生成 helper 函数,需额外安装 ts-helpers // "importHelpers": true, // 通过 tslib 引入 helper 函数,文件必须是模块 // "downlevelIteration": true, // 降级遍历器的实现(es3/5) // "strict": true, // 开启所有严格的类型检查 // "alwaysStrict": false, // 在代码中注入 "use strict"; // "noImplicitAny": false, // 不允许隐式的 any 类型 // "strictNullChecks": false, // 不允许把 null、undefined 赋值给其他类型变量 // "strictFunctionTypes": false // 不允许函数参数双向协变 // "strictPropertyInitialization": false, // 类的实例属性必须初始化 // "strictBindCallApply": false, // 严格的 bind/call/apply 检查 // "noImplicitThis": false, // 不允许 this 有隐式的 any 类型 // "noUnusedLocals": true, // 检查只声明,未使用的局部变量 // "noUnusedParameters": true, // 检查未使用的函数参数 // "noFallthroughCasesInSwitch": true, // 防止 switch 语句贯穿 // "noImplicitReturns": true, // 每个分支都要有返回值 // "esModuleInterop": true, // 允许 export = 导出,由 import from 导入 // "allowUmdGlobalAccess": true, // 允许在模块中访问 UMD 全局变量 // "moduleResolution": "node", // 模块解析策略 // "baseUrl": "./", // 解析非相对模块的基地址 // "paths": { // 路径映射,相对于 baseUrl // "jquery": ["node_modules/jquery/dist/jquery.slim.min.js"] // }, // "rootDirs": ["src", "out"], // 将多个目录放在一个虚拟目录下,用于运行时 // "listEmittedFiles": true, // 打印输出的文件 // "listFiles": true, // 打印编译的文件(包括引用的声明文件) } }
也可以把公共的抽离出来
// tsconfig.base.json { "files" : ['src/index.ts'], // 编译的文件列表 "include": ['src'], // 指定编译文件 "exclude": ['src/lib'], // 排除编译文件 }
"extends": './tsconfig.base', "exclude": [] // 覆盖之前的
4.2 工程引用配置多个项目
每个项目都有一份独立的 tsconfig.json
,继承一份公共的配置,最后可单独构建每个子项目工程
参考学习 typescript
项目 https://github.com/microsoft/TypeScript/tree/master/src
// 示例 项目入口 { "compilerOptions": { "target": "es5", "module": "commonjs", "strict": true, "composite": true, "declaration": true } }
// 子工程 1 // src/client/tsconfig.json { "extends": "../../tsconfig.json", //继承基础配置 "compilerOptions": { "outDir": "../../dist/client", // 输出文件 }, "references": [ { "path": "../common" } // 依赖文件 ] }
// 子工程 2 // src/server/tsconfig.json { "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "../../dist/server", }, "references": [ { "path": "../common" } ] }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论