加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

TypeScript 编译选项介绍

发布时间:2023-03-31 08:52:26 所属栏目:教程 来源:
导读:TypeScript 提供了很多不同功能的编译选项,既可以通过配置 tsconfig.json 文件中的 compilerOptions 属性来实现编译,也可以使用在 tsc 命令后跟随参数这形式,直接编译 .ts 文件。

注意: 当命令行上指定了输入
TypeScript 提供了很多不同功能的编译选项,既可以通过配置 tsconfig.json 文件中的 compilerOptions 属性来实现编译,也可以使用在 tsc 命令后跟随参数这形式,直接编译 .ts 文件。

注意: 当命令行上指定了输入文件时,tsconfig.json 文件会被忽略。

我们通过编译选项 --watch 为例,在当前目录创建 main.ts 文件,写入内容:

enum Season {
  Spring,
  Summer,
  Autumn,
  Winter
}
在命令行执行:

tsc main.ts --watch
编译选项 --watch 使编译器在监视模式下运行,会监视输出文件,在它们改变时重新编译。

选项    类型    默认值    描述
–allowJs    boolean    false    允许编译 JavaScript 文件
–allowSyntheticDefaultImports    boolean    false    允许从没有设置默认导出的模块中默认导入
–allowUnreachableCode    boolean    false    不报告执行不到的代码错误
–allowUnusedLabels    boolean    false    不报告未使用的标签错误
–alwaysstrict    boolean    false    以严格模式解析并为每个源文件生成 "use strict" 语句
--baseUrl    string        解析非相对模块名的基准目录
–charset    string    “utf8”    输入文件的字符集
–checkJs    boolean    false    在 .js 文件中报告错误,与 --allowJs 配合使用
–declaration
-d    boolean    false    生成相应的 .d.ts 文件
–declarationDir    string        生成声明文件的输出路径
–diagnostics    boolean    false    显示诊断信息
–disableSizeLimit    boolean    false    禁用 JavaScript 工程体积大小的限制
–emitBOM    boolean    false    在输出文件的开头加入BOM头(UTF-8 Byte Order Mark)
–emitDecoratorMetadata[1]    boolean    false    给源码里的装饰器声明加上设计类型元数据。查看 issue #2577 了解更多信息。
–experimentalDecorators[1]    boolean    false    启用实验性的ES装饰器
–extendedDiagnostics    boolean    false    显示详细的诊断信息
–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[]        编译过程中需要引入的库文件的列表。
可能的值为:
► ES5
► ES6
► ES2015
► ES7
► ES2016
► ES2017
► ES2018
► ESNext
► ES5
► ES5
► ES5
► ES5
► ES5
► ES5
► 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.Intl
► ES2017.SharedMemory
► ES2017.String
► ES2017.TypedArrays
► ES2018.Intl
► ES2018.Promise
► ES2018.RegExp
► ESNext.AsyncIterable
► ESNext.Array
► ESNext.Intl
► ESNext.Symbol

注意:如果 --lib 没有指定默认注入的库的列表。默认注入的库为:
► 针对于 --target ES5:DOM,ES5,ScriptHost
► 针对于 --target ES6:DOM,ES6,DOM.Iterable,ScriptHost
–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” or “System” or “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    报错时不生成输出文件
–noErrorTruncation    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    若有未使用的参数则抛错
--outDir    string        重定向输出目录
–outFile    string        将输出文件合并为一个文件,合并的顺序是根据传入编译器的文件顺序和 ///<reference``> 和 import 的文件顺序决定的
–skipDefaultLibCheck    boolean    false    忽略库的默认声明文件的类型检查
–skipLibCheck    boolean    false    忽略所有的声明文件( *.d.ts )的类型检查
--sourceMap    boolean    false    生成相应的 .map 文件
–sourceRoot    string        指定 TypeScript 源文件的路径,以便调试器定位。当 TypeScript 文件的位置是在运行时指定时使用此标记, 路径信息会被加到 sourceMap 里
--strict    boolean    false    启用所有严格类型检查选项
–strictFunctionTypes    boolean    false    禁用函数参数双向协变检查
–strictPropertyInitialization    boolean    false    确保类的非 undefined 属性已经在构造函数里初始化。若要令此选项生效,需要同时启用 --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 <br> -t    string    “ES3”    指定ECMAScript目标版本 "ES3"(默认), "ES5", "ES6"/ "ES2015", "ES2016", "ES2017" 或 "ESNext"。

注意: "ESNext" 最新的生成目标列表为 ES proposed features
–traceResolution    boolean    false    生成模块解析日志信息
–types    string[]        要包含的类型声明文件名列表
–typeRoots    string[]        要包含的类型声明文件路径列表
--version <br> -v            打印编译器版本号
–watch
-w            在监视模式下运行编译器。会监视输出文件,在它们改变时重新编译。监视文件和目录的具体实现可以通过环境变量进行配置
[1] 这些选项是试验性的

本小节梳理了 TypeScript 的众多编译选项,可以先通读一遍,大致了解有些什么功能,在项目中需要使用时再来查阅即可。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章