配置 tsconfig.json

配置 tsconfig.json

tsconfig.json 所包含的属性并不多,只有 7 个,ms 官方也给出了它的定义文件。但看起来并不怎么舒服,这里就翻译整理一下。(若有误,还请指出)

  • files: 数组类型,用于表示由 ts 管理的文件的具体文件路径
  • exclude: 数组类型,用于表示 ts 排除的文件(2.0 以上支持 Glob)
  • include: 数组类型,用于表示 ts 管理的文件(2.0 以上)
  • compileOnSave: 布尔类型,用于 IDE 保存时是否生成编译后的文件
  • extends: 字符串类型,用于继承 ts 配置,2.1 版本后支持
  • compilerOptions: 对象类型,设置编译的选项,不设置则使用默认配置,配置项比较多,后面再列
  • typeAcquisition: 对象类型,设置自动引入库类型定义文件(.d.ts)相关,该对象下面有 3 个子属性分别是:
    • enable: 布尔类型,是否开启自动引入库类型定义文件(.d.ts),默认为 false
    • include: 数组类型,允许自动引入的库名,如:["jquery", "lodash"]
    • exculde: 数组类型,排除的库名

如不设定 filesinclude,ts 默认是 exclude 以外的所有的以 .ts.tsx 结尾的文件。如果,同时设置 files 的优先级最高,exclude 次之,include 最低。

上面都是文件相关的,编译相关的都是靠 compilerOptions 设置的,接着就来看一看。

属性名 | 值类型 | 默认值 | 描述

  • allowJs boolean 类型 默认值false , 编译时,允许有 js 文件
  • allowSyntheticDefaultImports | boolean | module === "system" | 允许引入没有默认导出的模块 |
  • allowUnreachableCode boolean 类型 默认值false | 允许覆盖不到的代码 |
  • allowUnusedLabels boolean 类型 默认值false 允许未使用的标签 |
  • alwaysStrict boolean 类型 默认值false 严格模式,为每个文件添加 "use strict" |
  • baseUrl string 类型 与 path 一同定义模块查找的路径,详细参考这里 |
  • charset string 类型 默认值"utf8" | 输入文件的编码类型 |
  • checkJs boolean 类型 默认值false 验证 js 文件,与 allowJs 一同使用 |
  • declaration boolean 类型 默认值false 生成 .d.ts 定义文件 |
  • declarationDir string 类型 生成定义文件的存放文件夹(2.0 以上) |
  • diagnostics boolean 类型 默认值false 是否显示诊断信息 |
  • downlevelIteration boolean 类型 默认值false 当 target 为 ES5 或 ES3 时,提供对 for..of,解构等的支持 |
  • emitBOM boolean 类型 默认值false 在输出文件头添加 utf-8 (BOM)字节标记 |
  • emitDecoratorMetadata boolean 类型 默认值false 详见 issue |
  • experimentalDecorators boolean 类型 默认值false 允许注解语法 |
  • forceConsistentCasingInFileNames boolean 类型 默认值false 不允许不同变量来代表同一文件 |
  • importHelper s | boolean 类型 默认值false 引入帮助(2.1 以上) |
  • inlineSourceMap boolean 类型 默认值false 将 source map 一同生成到输出文件中 |
  • inlineSources boolean 类型 默认值false 将 ts 源码生成到 source map 中,需要同时设置 inlineSourceMapsourceMap |
  • isolatedModules boolean 类型 默认值false 将每个文件作为单独的模块 |
  • jsx string 类型 默认值"preserve" | jsx 的编译方式 |
  • jsxFactory string 类型 默认值"React.createElement" | 定义 jsx 工厂方法,React.createElement 还是 h(2.1 以上) |
  • lib | string[] | | 引入库定义文件,可以是["es5", "es6", "es2015", "es7", "es2016", "es2017", "esnext", "dom", "dom.iterable", "webworker", "scripthost", "es2015.core", "es2015.collection", "es2015.generator", "es2015.iterable", "es2015.promise", "es2015.proxy", "es2015.reflect", "es2015.symbol", "es2015.symbol.wellknown", "es2016.array.include", "es2017.object", "es2017.sharedmemory", "esnext.asynciterable"](2.0 以上) |
  • listEmittedFiles boolean 类型 默认值false 显示输入文件名 |
  • listFiles boolean 类型 默认值false 显示编译输出文件名 |
  • locale string 类型 默认值随系统 | 错误信息的语言 |
  • mapRoot string 类型 定义 source map 的存放位置 |
  • maxNodeModuleJsDepth | number | 0 | 检查引入 js 模块的深度,需同 allowJs 一同使用 |
  • module string 类型 指定模块生成方式,["commonjs", "amd", "umd", "system", "es6", "es2015", "esnext", "none"] |
  • moduleResolution string 类型 指定模块解析方式,["classic" : "node"] |
  • newLine string 类型 默认值随系统 | 行位换行符,"crlf" (windows) 或 "lf" (unix) |
  • noEmit boolean 类型 默认值false 不显示输出 |
  • noEmitHelpers boolean 类型 默认值false 不在输出文件中生成帮助 |
  • noEmitOnError boolean 类型 默认值false 出错后,不输出文件 |
  • noFallthroughCasesInSwitch boolean 类型 默认值false switch 语句中,每个 case 都要有 break |
  • noImplicitAny boolean 类型 默认值false 不允许隐式 any |
  • noImplicitReturns boolean 类型 默认值false 函数所有路径都必须有显示 return |
  • noImplicitThis boolean 类型 默认值false 不允许 this 为隐式 any |
  • noImplicitUseStrict boolean 类型 默认值false 输出中不添加 "use strict" |
  • noLib boolean 类型 默认值false 不引入默认库文件 |
  • noResolve boolean 类型 默认值false 不编译三斜杠或模块引入的文件 |
  • noUnusedLocals boolean 类型 默认值false 未使用的本地变量将报错(2.0 以上) |
  • noUnusedParameters boolean 类型 默认值false 未使用的参数将报错(2.0 以上) |
  • outDir string 类型 定义输出文件的文件夹 |
  • outFile string 类型 合并输出到一个文件 |
  • paths | object | | 与 baseUrl 一同定义模块查找的路径,详细参考这里 |
  • preserveConstEnums boolean 类型 默认值false 不去除枚举声明 |
  • pretty boolean 类型 默认值false 美化错误信息 |
  • reactNamespace string 类型 默认值"React" | 废弃。改用jsxFactory |
  • removeComments boolean 类型 默认值false 去除注释 |
  • rootDir string 类型 默认值当前目录 | 定义输入文件根目录 |
  • rootDirs string[] 类型 定义输入文件根目录 |
  • skipDefaultLibCheck boolean 类型 默认值false 废弃。改用 skipLibCheck |
  • skipLibCheck boolean 类型 默认值false 对库定义文件跳过类型检查(2.0 以上) |
  • sourceMap boolean 类型 默认值false 生成对应的 map 文件 |
  • sourceRoot string 类型 调试时源码位置 |
  • strict boolean 类型 默认值false 同时开启 alwaysStrict, noImplicitAny, noImplicitThisstrictNullChecks (2.3 以上) |
  • strictNullChecks boolean 类型 默认值false null 检查(2.0 以上) |
  • stripInternal boolean 类型 默认值false 不输出 JSDoc 注解 |
  • suppressExcessPropertyErrors boolean 类型 默认值false 不提示对象外属性错误 |
  • suppressImplicitAnyIndexErrors boolean 类型 默认值false 不提示对象索引隐式 any 的错误 |
  • target string 类型 默认值"es3" | 输出代码 ES 版本,可以是 ["es3", "es5", "es2015", "es2016", "es2017", "esnext"] |
  • traceResolution boolean 类型 默认值false 跟踪模块查找信息 |
  • typeRoots string[] 类型 定义文件的文件夹位置(2.0 以上) |
  • types string[] 类型 设置引入的定义文件(2.0 以上) |
  • watch boolean 类型 默认值false | 监听文件变更 |

一般情况下,tsconfig.json 文件只需配置 compilerOptions 部分。

{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true, // 允许引入没有默认导出的模块
    "module": "es2015",
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true,
    "strict": true,
    "target": "es5",
    "lib": [
      "dom",
      "es5",
      "es2015"
    ]
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,738评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,377评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,774评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,032评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,015评论 5 361
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,239评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,724评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,374评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,508评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,410评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,457评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,132评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,733评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,804评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,022评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,515评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,116评论 2 341