一文读懂tsconfig.json配置文件

9 篇文章 1 订阅

tsconfig.json是TypeScript编辑器的配置文件,通常存在于项目的根目录中,TypeScript编译器可根据它的信息来对代码进行编译。(如图是react脚手架中的tsconfig.json配置文件)

根选项:

  • include:用来指定哪些ts文件需要被编译,否则默认当前目录下除了exclude之外所有.ts, .d.ts,.tsx文件
  • exclude:指定不需要被编译的目录
  • extends:指定一个其他tsconfig.json文件路径,来继承这个配置文件里的配置,继承文件的配置会覆盖当前文件定义的配置
  • files:指定被编译文件的列表,只有需要编译文件少时才会用到,一般直接用include指定文件夹
  • compilerOptions: 编译器选项
  • references:用于指定项目之间的引用关系
{
     //** 表示任意目录, * 表示任意文件。
    "include": ["./src/**/*"], // 指定被编译文件所在的目录,否则默认当前目录下除了exclude之外的所有.ts, .d.ts,.tsx文件
    "exclude": [], // 指定不需要被编译的目录
    "references": [{ "path": "./tsconfig.node.json" }], //用于指定项目之间的引用关系,当前项目的 tsconfig.json 文件引用了位于相对路径 "./tsconfig.node.json" 的另一个 TypeScript 配置文件
    "compilerOptions": {
         /* 编辑器选项 */
        "target": "ES6", // 目标语言的版本
        "module": "commonjs", // 生成代码的模板标准
        "lib": ["DOM","ES5","ES6","ES7","ScriptHost"], // TS需要引用的库,如未指定会根据target注入默认列表
        "types": [], // 用来指定需要包含的模块,只有在这里列出的模块声明文件才会被加载进来
        "baseUrl": ".", // 用于设置解析非相对模块名称的基本目录,相对模块不会受到baseUrl的影响
        "paths": {
            "@/*": [
             "src/*"
              ]
            }
         }, // 用于设置模块名到基于baseUrl的路径映射
        "sourceMap": true, // 用来指定编译时是否生成.map文件
        "outDir": "./dist", // 指定输出目录
        "rootDir": "./", // 指定输出文件目录(用于输出),用于控制输出目录结构
        "allowJs": true, // 允许编译器编译JS,JSX文件
        "checkJs": true, // 允许在JS文件中报错,通常与allowJS一起使用
        "removeComments": true, // 删除注释
        "esModuleInterop": true, // 为导入内容创建命名空间,实现CommonJS和ES模块之间的互操作性
        "jsx": "react-jsx", // 指定jsx代码用于的开发环境
        "moduleResolution": "node",//用于选择模块解析策略,有'node'和'classic'两种类型
        "skipLibCheck": true, // 用来控制是否在编译时进行库文件检查的
        /* 严格检查选项 */
        "strict": true, // 开启所有严格的类型检查
        "alwaysStrict": true, // 在代码中注入'use strict'
        "noImplicitAny": true, // 不允许隐式的any类型
        "noImplicitThis": true, // 不允许this有隐式的any类型
        "strictNullChecks": true, // 不允许把null、undefined赋值给其他类型的变量
        "strictBindCallApply": true, // 严格的bind/call/apply检查
        "strictFunctionTypes": true, // 不允许函数参数双向协变
        "strictPropertyInitialization": true, // 类的实例属性必须初始化
        /* 额外检查 */
        "noUnusedLocals": true,//是否检查未使用的局部变量
        "noUnusedParameters": true,//是否检查未使用的参数
        "noImplicitReturns": true,//检查函数是否不含有隐式返回值
        "noImplicitOverride": true,//是否检查子类继承自基类时,其重载的函数命名与基类的函数不同步问题
        "noFallthroughCasesInSwitch": true,//检查switch中是否含有case没有使用break跳出
        "noUncheckedIndexedAccess": true,//是否通过索引签名来描述对象上有未知键但已知值的对象
        "noPropertyAccessFromIndexSignature": true,//是否通过" . “(obj.key) 语法访问字段和"索引”( obj[“key”]), 以及在类型中声明属性的方式之间的一致性
        /* 实验选项 */
        "experimentalDecorators": true,//是否启用对装饰器的实验性支持,装饰器是一种语言特性,还没有完全被 JavaScript 规范批准
        "emitDecoratorMetadata": true,//为装饰器启用对发出类型元数据的实验性支持
        /* 高级选项 */
        "forceConsistentCasingInFileNames": true,//是否强制代码中使用的模块文件名必须和文件系统中的文件名保持大小写一致
        "extendedDiagnostics": false,//是否查看 TS 在编译时花费的时间
        "noEmitOnError": true,//有错误时不进行编译
        "resolveJsonModule": true,//是否解析 JSON 模块
        "allowSyntheticDefaultImports": true, //指定允许从没有默认导出的模块中默认导入
    },
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
IEEE JTAG 1149.1 是一种广泛应用于集成电路测试和调试的标准接口协议。JTAG全称为Joint Test Action Group,是一组工程师组成的国际组织,该组织制定了JTAG标准。 IEEE JTAG 1149.1 是JTAG标准的具体实现,它定义了一种在芯片上通过少量引脚进行测试和调试的方法。该标准使得集成电路设计师可以在生产过程中对芯片进行非侵入式测试,而无需直接接触芯片引脚。 IEEE JTAG 1149.1 标准定义了一个实际上是一个逻辑链的JTAG端口,它由多个连续的芯片引脚组成。每个芯片将其TAP控制器连接到该链上,TAP控制器实现了JTAG标准规定的测试和调试功能。 通过该JTAG链,可以对芯片进行多种测试操作,如扫描链测试、边界扫描测试和功能测试。其中,边界扫描测试是最重要的一种测试方法,通过扫描链测试,可以对芯片的边界节点进行控制和观测,从而检测功能和连线错误。 除了测试功能外,IEEE JTAG 1149.1 还可以用于调试芯片和进行一些特殊操作,比如芯片的编程和重置。通过JTAG接口,工程师可以通过特殊的JTAG命令对芯片进行访问和控制。 总之,IEEE JTAG 1149.1 是一种集成电路测试和调试的标准接口协议。通过该协议,工程师可以通过少量引脚对芯片进行非侵入式测试,并进行一些特殊操作和调试。该标准在集成电路设计和生产中发挥了重要作用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rinba_murphy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值