加入QQ群:864680898,一起学习进步!点击群名可查看本人网站,有最新文章!
(五)Typescript的项目配置
一、使用tsconfig.json
- 1、不带任何输入文件的情况下调用tsc,编译器会从当前目录开始去查找tsconfig.json文件,逐级向上搜索父目录。
- 2、不带任何输入文件的情况下调用tsc,且使用命令行参数–project(或-p)指定一个包含tsconfig.json文件的目录。
二、tsc常用命令
查看完整的命令的话:完整编译选项启动命令
tsc --init // 初始化tsconfig.json配置文件
tsc -h // 查看帮助
tsc -v // 查看版本
tsc -w // 在监听模式下运行编译器,能捕获ts文件更改,自动转换为js代码
三、一个中文的注释每个配置的用途
附带一个tsconfig.json的中文注释每个功能
{
"compilerOptions": {
/* 基本选项 */
"target": "es5", /* 指定ECMAScript目标版本: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
"module": "commonjs", /* 指定模块代码生成: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
// "lib": [], /* 指定要包含在编译中的库文件 */
// "allowJs": true, /* 允许编译javascript文件 */
// "checkJs": true, /* 报告.js文件中的错误 */
// "jsx": "preserve", /* 指定JSX代码生成: 'preserve', 'react-native', or 'react'. */
// "declaration": true, /* 生成相应的 '.d.ts' file. */
// "sourceMap": true, /* 生成相应的 '.map' file. */
// "outFile": "./", /* 将输出连接并发送到单个文件 */
// "outDir": "./", /* 将输出结构重定向到目录 */
// "rootDir": "./", /* 指定输入文件的根目录。用于通过--outdir控制输出目录结构 */
// "removeComments": true, /* 不要向输出发出注释 */
// "noEmit": true, /* 不要发射输出 */
// "importHelpers": true, /* 从“tslib”导入emit helpers */
// "downlevelIteration": true, /* 当语法为es5,es3时,为“for of”、“spread”和“destructing”中的iterables提供全面支持 */
// "isolatedModules": true, /* 将每个文件作为单独的模块(类似于'ts.蒸腾模块') */
/* 严格模式下 */
"strict": true, /* 严格模式下执行 */
// "noImplicitAny": true, /* 对具有隐含“any”类型的表达式和声明引发错误,这个其实可以改为 false */
// "strictNullChecks": true, /* 启用严格的空检查 */
// "strictFunctionTypes": true, /* 启用对函数类型的严格检查 */
// "strictPropertyInitialization": true, /* 启用对类中的属性初始化的严格检查 */
// "noImplicitThis": true, /* 使用隐含的“any”类型对“this”表达式引发错误 */
// "alwaysStrict": true, /* 以严格模式分析并为每个源文件发出“use strict” */
/* 附加 */
// "noUnusedLocals": true, /* 报告未使用的局部变量的错误 */
// "noUnusedParameters": true, /* 报告未使用参数的错误 */
// "noImplicitReturns": true, /* 函数中并非所有代码路径都返回值时报告错误 */
// "noFallthroughCasesInSwitch": true, /* 在switch语句中报告fallthrough事例的错误 */
/* 模块分辨率选项 */
// "moduleResolution": "node", /* 指定模块解析策略: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
// "baseUrl": "./", /* 用于解析非绝对模块名称的基目录 */
// "paths": {}, /* 将导入重新映射到相对于“baseurl”的查找位置的一系列条目 */
// "rootDirs": [], /* 其组合内容表示运行时项目结构的根文件夹列表 */
// "typeRoots": [], /* 要包含类型定义的文件夹列表 */
// "types": [], /* 要包含在编译中的类型声明文件 */
// "allowSyntheticDefaultImports": true, /* 允许从没有默认导出的模块中导入默认值。这不影响代码发出,只影响类型检查 */
"esModuleInterop": true, /* 通过为所有导入创建命名空间对象,实现commonjs和es模块之间的互操作性。表示“allowSyntheticDefaultImports” */
// "preserveSymlinks": true, /* 不要解析符号链接的实际路径 */
/* Source Map Options */
// "sourceRoot": "./", /* 指定调试器应在其中定位typescript文件而不是源位置 */
// "mapRoot": "./", /* 指定调试器应定位映射文件而不是生成位置的位置 */
// "inlineSourceMap": true, /* 使用源映射发出单个文件,而不是使用单独的文件 */
// "inlineSources": true, /* emit源的sourcemaps同时在一个单一的文件; requires '--inlineSourceMap' or '--sourceMap' to be set. */
/* 实验性选择 */
"experimentalDecorators": true, /* 就是支持ES7才有的装饰器 */
// "emitDecoratorMetadata": true, /* 启用对为装饰器发出类型元数据的实验支持 */
}
}