• Typescrip编译选项


    ts专栏 ===> 🌈 typescript入门到拔高🌈(持续更新中…)

    自动编译文件

    • 编译文件时,使用 -w 指令后,TS编译器会自动监视文件的变化,并在文件发生变化时对文件进行重新编译。

    • 示例:

      tsc xxx.ts -w
      
      • 1

    自动编译整个项目

    • 如果直接使用tsc指令,则可以自动将当前项目下的所有ts文件编译为js文件。
    • 但是能直接使用tsc命令的前提时,要先在项目根目录下创建一个ts的配置文件 tsconfig.json。
    • tsconfig.json是一个JSON文件,添加配置文件后,只需只需 tsc 命令即可完成对整个项目的编译
    • tsconfig.json 是ts编译器的配置文件,ts编译器可以根据它的信息来对代码进行编译

    配置选项

    include

    • 用来指定哪些ts文件需要被编译

    • 默认值:[“**/*”]

    • 路径: **表示任意目录,*表示任意文件

      "include":["src/**/*", "tests/**/*"]
      
      • 1
    • 上述示例中,所有src目录和tests目录下的文件都会被编译

    exclude

    • 不需要被编译的文件目录,用来指定需要排除在外的目录
    • 默认值:[“node_modules”, “bower_components”, “jspm_packages”]
    • 示例:
      • "exclude": ["./src/hello/**/*"]
      • 上述示例中,src下hello目录下的文件都不会被编译

    extends

    • 定义被继承的配置文件(使用频率低,了解一下)
    • 示例:
      • "extends": "./configs/base"
      • 上述示例中,当前配置文件中会自动包含config目录下base.json中的所有配置信息

    files

    • 指定被编译文件的列表,只有需要编译的文件少时才会用到(基本用不到,了解一下即可)

      "files": [
          "core.ts",
          "sys.ts",
          "types.ts",
          "scanner.ts",
          "parser.ts",
          "utilities.ts",
          "binder.ts",
          "checker.ts",
          "tsc.ts"
        ]
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11

      列表中的文件都会被TS编译器所编译

    compilerOptions

    • 编译选项是配置文件中非常重要也比较复杂的配置选项
    • 在compilerOptions中包含多个子选项,用来完成对编译的配置
    • 项目选项
      • target
        • target用来指定ts被编译为es的版本
        • 可选值:
          • ES3(默认)、ES5、ES6/ES2015、ES7/ES2016、ES2017、ES2018、ES2019、ES2020、ESNext(ESNext代表指定最新版本)
        • 示例:
          • "compilerOptions": { "target": "ES6" }
          • 如上设置,我们所编写的ts代码将会被编译为ES6版本的js代码
      • lib
        • lib用来表示项目要使用的库
        • 可选值:
          • ES5、ES6/ES2015、ES7/ES2016、ES2017、ES2018、ES2019、ES2020、ESNext、DOM、WebWorker、ScriptHost …(太多了,大家有兴趣的话自己在下面查一下)
        • 示例:
          • "compilerOptions": { "target": "ES6", "lib": ["ES6", "DOM"], }
          • 一般在我们进行配置的时候,这个可以默认不修改。
      • module
        • module指定要使用的模块化的规范
        • 可选值:
          • CommonJS、UMD、AMD、System、ES2020、ESNext、None
        • 示例:
          "compilerOptions": {
              "module": "es6"
          }
          
          • 1
          • 2
          • 3
      • outDir
        • outDir 用来指定编译后文件所在的目录
        • 默认情况下,编译后的js文件会和ts文件位于相同的目录,设置outDir后可以改变编译后文件的位置
        • 示例:
          "compilerOptions": {
              "outDir": "dist"
          }
          
          • 1
          • 2
          • 3
          • 设置后编译后的js文件将会生成到dist目录
      • outFile
        • 可以将代码合并成一个js文件
        • 默认会将所有的编写在全局作用域中的代码合并为一个js文件,如果module制定了None、System或AMD则会将模块一起合并到文件之中
        • 示例:
          "compilerOptions": {
              "outFile": "dist/app.js"
          }
          
          • 1
          • 2
          • 3
      • rootDir
        • 指定代码的根目录,默认情况下编译后文件的目录结构会以最长的公共目录为根目录,通过rootDir可以手动指定根目录
        • 示例:
          "compilerOptions": {
              "rootDir": "./src"
          }
          
          • 1
          • 2
          • 3
      • allowJs
        • 是否对js进行编译
        • "allowJs": true,
      • checkJs
        • 检查js代码是否符合语法规范,默认为false
        • "checkJs": false,
      • removeComments
        • 是否移除注释(在编译后的js文件中,ts文件中的注释依旧显示)
        • 默认值:false
      • noEmit
        • 不生成编译后的文件(不编译)
        • 默认值:false

    严格检查

    • strict
      • 启用所有的严格检查,默认值为true,设置后相当于开启了所有的严格检查,当启用该选项时,下面的配置全部默认配置完成
    • alwaysStrict
      • 用来设置编译后的文件是否使用严格模式,默认是false
    • noImplicitAny
      • 禁止隐式的any类型
    • noImplicitThis
      • 禁止类型不明确的this
    • strictBindCallApply
      • 严格检查bind、call和apply的参数列表
    • strictFunctionTypes
      • 严格检查函数的类型
    • strictNullChecks
      • 严格的空值检查
    • strictPropertyInitialization
      • 严格检查属性是否初始化

    额外检查

    • noFallthroughCasesInSwitch
      • 检查switch语句包含正确的break
    • noImplicitReturns
      • 检查函数没有隐式的返回值
    • noUnusedLocals
      • 检查未使用的局部变量
    • noUnusedParameters
      • 检查未使用的参数

    高级

    • allowUnreachableCode
      • 检查不可达代码
      • 可选值:
        • true,忽略不可达代码
        • false,不可达代码将引起错误
    • noEmitOnError
      • 有错误的情况下不进行编译
      • 默认值:false

    小结

    本篇文章就是讲解ts文件编译时候的一些配置,在我们正常使用时,我们不会配置的那么复杂,一般情况我们的配置如下

    "compilerOptions": {
        "module": "es6",
        "target": "es6",
        "strict": true
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    如果你想专门修改某些配置,上方的讲解已经非常详细了,大家按照自己的需求配置即可。

  • 相关阅读:
    深度剖析C语言指针
    通过Patch-Base来优化VSR中的时间冗余
    k8s 1.28安装
    时序特征提取工具
    产品代码都给你看了,可别再说不会DDD(二):DDD概念大白话
    醋氯芬酸小鼠血清白蛋白纳米粒Aceclofenac-MSA|利凡诺大鼠血清白蛋白纳米粒Ethacridine-RSA
    LeetCode --- 1523. Count Odd Numbers in an Interval Range 解题报告
    【STM32系统】基于STM32设计的按键PWM控制舵机窗帘&柜子&门禁&家居等控制系统——文末资料下载
    Javaweb-表单重复提交情况
    C#实战:基于腾讯OCR技术实现企业证书识别和数据提取实践
  • 原文地址:https://blog.csdn.net/m0_52040370/article/details/126206115