ts总结第二篇

“typings”: “types/index.d.ts”,

在 TypeScript 的 tsconfig.json 配置文件中,compilerOptions 中的 typeRootstypes 选项以及 includeexclude 选项都有不同的作用和用途。理解这些配置项之间的区别和作用可以帮助你更好地管理 TypeScript 项目。

1. compilerOptions 配置项

typeRoots
  • 作用:指定 TypeScript 查找类型声明文件的根目录。它告诉 TypeScript 编译器在哪里查找类型定义文件(.d.ts 文件)。

  • 配置示例

    "typeRoots": ["./node_modules/@types", "./src/types"]
    

    这意味着 TypeScript 会在 ./node_modules/@types./src/types 这两个目录下查找类型声明文件。通常,node_modules/@types 是用于第三方库的类型声明,而 src/types 用于项目自定义的类型声明。

types
  • 作用:指定需要包含在编译中的类型声明文件。这通常用于控制哪些全局类型包被包含在项目中。

  • 配置示例

    "types": ["node", "lodash"]
    

    这会告诉 TypeScript 仅包括 @types/node@types/lodash 中的类型声明文件,而不包括 node_modules/@types 中的其他类型声明。

2. includeexclude 配置项

include
  • 作用:指定哪些文件和目录应包含在 TypeScript 编译过程中。这些路径是相对于 tsconfig.json 文件的位置。

  • 配置示例

    "include": [
      "src/**/*.ts",
      "src/**/*.tsx",
      "src/**/*.vue"
    ]
    

    这意味着 TypeScript 编译器会编译 src 目录下所有的 .ts.tsx.vue 文件。

exclude
  • 作用:指定哪些文件和目录应排除在 TypeScript 编译过程之外。这些路径是相对于 tsconfig.json 文件的位置。

  • 配置示例

    "exclude": [
      "node_modules"
    ]
    

    这意味着 TypeScript 编译器会排除 node_modules 目录下的所有文件。

配置示例和效果

考虑以下配置的组合:

{
  "compilerOptions": {
    "typeRoots": ["./node_modules/@types", "./src/types"],
    "types": ["node", "lodash"]
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.vue"
  ],
  "exclude": [
    "node_modules"
  ]
}
  • typeRoots:TypeScript 将在 ./node_modules/@types./src/types 目录下查找类型声明文件。

  • types:仅将 @types/node@types/lodash 的类型声明文件包含在编译中,忽略 node_modules/@types 中的其他类型声明。

  • include:指定了 TypeScript 编译器应该包括 src 目录下的 .ts.tsx.vue 文件。

  • exclude:排除了 node_modules 目录,意味着 node_modules 中的文件不会被编译(这也是默认行为)。

总结

  • typeRoots 控制类型声明文件的根目录。
  • types 控制要包含在编译中的类型声明包。
  • includeexclude 控制编译过程中的文件和目录范围。

这些配置项的结合使你能够精确地控制 TypeScript 编译器的行为,包括如何处理类型声明文件和哪些文件应被编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值