Node.js tsconfig.json 逐条简介

为了更好的设置tsc编译所需的参数, 添加tsconfig.json文件

{
    "compileOnSave": false, // 在保存文件的时候根据tsconfig.json重新生成文件
    "compilerOptions": {
        "outDir": "./dist/out-tsc", // 输出目录
        "baseUrl": "src",
        "sourceMap": true, // 把 ts 文件编译成 js 文件的时候,同时生成对应的 map 文件
        "removeComments": true, // 编译 js 的时候,删除掉注释
        "declaration": false,
        "moduleResolution": "node", // 模块的解析
        "emitDecoratorMetadata": true, // 给源码里的装饰器声明加上设计类型元数据。查看issue #2577了解更多信息
        "experimentalDecorators": true, // 启用实验性的ES装饰器
        "target": "es5", // 编译目标平台
        "noImplicitAny": true, // 若编译器无法判断类型,将用 any 类型代替 ( false ) 或报错 ( true )
        "typeRoots": [
            "node_modules/@types"
        ],
        "lib": [ // 添加需要的解析的语法,否则TS会检测出错
            "es2016",
            "dom"
        ]
    }
}
选项 类型 默认值 描述
allowJs boolean false 允许编译 js
allowSyntheticDefaultImports boolean module === "system" 允许从未设置默认导出的模块中导入( 仅供类型检查 )
allowUnreachableCode boolean false 忽略不执行的代码的错误
allowUnusedLabels boolean false 忽略未使用标签的错误
alwaysStrict boolean false 以严格模式解析并为每个源文件生成"use strict"语句
baseUrl string false 解析非相对模块名的基准目录
charset string "utf8" 输入文件的字符集
checkJs boolean false 报告.js文件中的错误,与 allowJs 配合使用
declaration d boolean false 生成相应的.d.ts文件
declarationDir string 生成声明文件的输出路径
diagnostics boolean false 显示诊断信息
disableSizeLimit boolean false 禁用 js 工程体积大小的限制
emitBOM boolean false 在输出文件的开头加入BOM头(UTF-8 Byte Order Mark)
emitDecoratorMetadata boolean false 给源码里的装饰器声明加上设计类型元数据
experimentalDecorators boolean false 启用实验性的ES装饰器
forceConsistentCasingInFileNames boolean false 禁止对同一个文件的不一致的引用
help h 打印帮助信息
importHelpers string tslib导入辅助工具函数(比如__extends,__rest等)
inlineSourceMap boolean false 生成单个sourcemaps文件,而不是将每sourcemaps生成不同的文件
inlineSources boolean false 将代码与sourcemaps生成到一个文件中,要求同时设置了 inlineSourceMap 或 sourceMap 属性
init 初始化TypeScript项目并创建一个tsconfig.json文件
isolatedModules boolean false 将每个文件作为单独的模块(与“ts.transpileModule”类似)
jsx string "Preserve" 在.tsx文件里支持JSX:"React"或"Preserve"
jsxFactory string "React.createElement" 指定生成目标为react JSX时,使用的JSX工厂函数,比如React.createElement或h
lib string[] 编译过程中需要引入的库文件的列表(可能的值放在文章底部)
listEmittedFiles boolean false 打印出编译后生成文件的名字
listFiles boolean false 编译过程中打印文件名
locale string (platform specific) 显示错误信息时使用的语言,比如:en-us
mapRoot string 为调试器指定指定sourcemap文件的路径,而不是使用生成时的路径。当.map文件是在运行时指定的,并不同于js文件的地址时使用这个标记。指定的路径会嵌入到sourceMap里告诉调试器到哪里去找它们
maxNodeModuleJsDepth number 0 node_modules依赖的最大搜索深度并加载JavaScript文件。仅适用于 allowJs
module m string target === "ES6" ? "ES6" : "commonjs" 指定生成哪个模块系统代码:"None","CommonJS","AMD","System","UMD","ES6"或"ES2015" 只有 "AMD"和"System"能和 outFile 一起使用,"ES6"和"ES2015"可使用在目标输出为"ES5"或更低的情况下
moduleResolution string module === "AMD" / "System" / "ES6" ? "Classic" : "Node" 决定如何处理模块。或者是"Node"对于Node.js/io.js,或者是"Classic"(默认)
newLine string (platform specific) 当生成文件时指定行结束符:"crlf"(windows)或"lf"(unix)
noEmit boolean false 不生成输出文件
noEmitHelpers boolean false 不在输出文件中生成用户自定义的帮助函数代码,如__extends
noEmitOnError boolean false 报错时不生成输出文件
noFallthroughCasesInSwitch boolean false 报告 switch 语句的 fallthrough 错误(即,不允许switch的case语句贯穿)
noImplicitAny boolean false 在表达式和声明上有隐含的any类型时报错
noImplicitReturns boolean false 不是函数的所有返回路径都有返回值时报错
noImplicitThis boolean false 当this表达式的值为any类型的时候,生成一个错误
noImplicitUseStrict boolean false 模块输出中不包含"use strict"指令
noLib boolean false 不包含默认的库文件(lib.d.ts)
noResolve boolean false 不把/// <reference>或模块导入的文件加到编译文件列表
noStrictGenericChecks boolean false 禁用在函数类型里对泛型签名进行严格检查
noUnusedLocals boolean false 若有未使用的局部变量则抛错
noUnusedParameters boolean false 若有未使用的参数则抛错
out string 弃用。使用 outFile 代替
outDir string 重定向输出目录
outFile string 将输出文件合并为一个文件。合并的顺序是根据传入编译器的文件顺序和///<reference>和import的文件顺序决定的。查看输出文件顺序文件了解详情
paths[2] Object 模块名到基于baseUrl的路径映射的列表
preserveConstEnums boolean false 保留const和enum声明
preserveSymlinks boolean false 不把符号链接解析为其真实路径;将符号链接文件视为真正的文件
pretty[1] boolean false 给错误和消息设置样式,使用颜色和上下文
project -p string 编译指定目录下的项目。这个目录应该包含一个tsconfig.json文件来管理编译
reactNamespace string "React" 当目标为生成"react" JSX时,指定createElement和__spread的调用对象
removeComments boolean false 删除所有注释,除了以/!*开头的版权信息
rootDir string (common root directory is computed from the list of input files) 仅用来控制输出的目录结构outDir
rootDirs[2] string[] 根(root)文件夹列表,表示运行时组合工程结构的内容
skipDefaultLibCheck boolean false 忽略库的默认声明文件的类型检查
skipLibCheck boolean false 忽略所有的声明文件(*.d.ts)的类型检查
sourceMap boolean false 生成相应的.map文件
sourceRoot string 指定TypeScript源文件的路径,以便调试器定位。当TypeScript文件的位置是在运行时指定时使用此标记。路径信息会被加到 sourceMap 里
strict boolean false 启用所有严格类型检查选项。启用 strict 相当于启用 noImplicitAny , noImplicitThis , alwaysStrict 和strictNullChecks
strictNullChecks boolean false 在严格的null检查模式下,null和undefined值不包含在任何类型里,只允许用它们自己和any来赋值(有个例外,undefined可以赋值到void)
stripInternal[1] boolean false 不对具有/** @internal */ JSDoc注解的代码生成代码
suppressExcessPropertyErrors[1] boolean false 阻止对对象字面量的额外属性检查
suppressImplicitAnyIndexErrors boolean false 阻止 noImplicitAny 对缺少索引签名的索引对象报错。查看issue #1232了解详情
target t string "ES3" 指定ECMAScript目标版本"ES3"(默认),"ES5","ES6"/"ES2015","ES2016","ES2017"或"ESNext"。注意:"ESNext"最新的生成目标列表为ES proposed features
traceResolution boolean false 生成模块解析日志信息
types string[] 要包含的类型声明文件名列表。查看@types,typeRoots 和 types章节了解详细信息
typeRoots string[] 要包含的类型声明文件路径列表。查看@types,typeRoots 和 types章节了解详细信息
version v 打印编译器版本号
watch w 在监视模式下运行编译器。会监视输出文件,在它们改变时重新编译
strictPropertyInitialization boolean false 确保每个实例的属性都会初始值,可以在构造函数里或者属性定义时赋值
downlevelIteration boolean false 当 target 为 ES5 或 ES3 时,提供对 for..of,解构等的支持

lib 关键词的可能的值:
ES5
ES6
ES2015
ES7
ES2016
ES2017
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

注意:如果lib没有指定一个默认注入的库。默认注入的库为:
针对于target ES5:DOM,ES5,ScriptHost
针对于target ES6:DOM,ES6,DOM.Iterable,ScriptHost

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

推荐阅读更多精彩内容

  • 本文为阮一峰大神的《ECMAScript 6 入门》的个人版提纯! babel babel负责将JS高级语法转义,...
    Devildi已被占用阅读 1,970评论 0 4
  • 三,字符串扩展 3.1 Unicode表示法 ES6 做出了改进,只要将码点放入大括号,就能正确解读该字符。有了这...
    eastbaby阅读 1,514评论 0 8
  • [TOC] 参考阮一峰的ECMAScript 6 入门参考深入浅出ES6 let和const let和const都...
    郭子web阅读 1,771评论 0 1
  • ECMAScript6(ES6)基础知识及核心原理 使用Babel编译ES6 一、下载安装Babel环境:需要电脑...
    田成力阅读 349评论 0 0
  • 感觉好凌乱,不知道在画些什么。我只是由着自己喜欢在画。
    听心上花开阅读 179评论 1 0