typescript tsconfig.config.json配置文件中各项说明

tsconfig.json文件中指定了用来编译这个项目的根文件和编译选项

自动编译项目

tsc

tsc可以直接自动监听所有的ts来编译为js文件

使用tsc的前提: 在项目根目录创建tsconfig.config.json文件

创建两种方式:

1. 直接在根目录新建tsconfig.config.json (配置文件需要自己配置)

2. 执行tsc --init  (会自动创建相关配置)

tsc --init

tsconfig.config.json 配置项说明

1. include

定义希望被编译的ts文件所在目录

默认值: ["**/*"] 

"include":["src/**/*"]

src目录下所有的ts文件都会被编译

2. exclude

不希望被编译的目录

默认值: ["node_modules", "bower_components", "jspm_packages"]

"exclude": ["./src/test/**/*"]

src中test目录下所有的ts文件不会被编译

3. extends

继承属性 希望继承的ts文件路径

"extends": "./src/base"

当前的配置文件会继承src目录下base的配置文件信息

4. files

指定要编译的ts文件

"files": [
    "core.ts",
    "sys.ts",
    "types.ts",
    "scanner.ts",
    "parser.ts",
    "utilities.ts",
    "binder.ts",
    "checker.ts",
    "tsc.ts"
  ]

只会编译列出的ts文件

5. compilerOptions

复杂的配置项

  5.1 target

  设置编译后的js版本

默认值: ES3

可选: ES3(默认)、ES5、ES6/ES2015、ES7/ES2016、ES2017、ES2018、ES2019、ES2020、ESNext

"compilerOptions": {
    "target": "ES6"
}

编译后为ES6语法 

ts: let x:number = 10 >>> js: let x = 10

  5.2 lib

所包含的库

可选值: ES5、ES6/ES2015、ES7/ES2016、ES2017、ES2018、ES2019、ES2020、ESNext、DOM、WebWorker、ScriptHost ......

"compilerOptions": {
    "target": "ES6",
    "lib": ["2015", "DOM"]
}

如果不含有DOM 使用document.xxx方法会在ts中报错

  5.3 module

模块化系统

可选值: CommonJS、UMD、AMD、System、ES2020、ESNext

"compilerOptions": {
    "module": "CommonJS"
}

  5.4 outDir

编译后输出的js位置

默认情况会在ts同目录生成

"compilerOptions": {
    "outDir": "js"
}

输出后的所有js文件存放在js目录下

  5.5 outFile

将所有的ts编译成一个js文件

默认会将所有的编写在全局作用域中的代码合并为一个js文件,如果module制定了None、System或AMD则会将模块一起合并到文件之中 (参考)

"compilerOptions": {
    "outFile": "dist/all.js"
}

将所有的ts文件编译并合并到dist目录下all.js中

  5.6 rootDir (没理解 参考)

指定代码的根目录,默认情况下编译后文件的目录结构会以最长的公共目录为根目录,通过rootDir可以手动指定根目录

"compilerOptions": {
    "rootDir": "./src"
}

  5.7 allowJs 

对js文件进行编译 js>>js (有点多此一举)

默认值: false

"compilerOptions": {
    "allowJs": true,
}

  5.8 checkJs

对js文件进行检查

默认值: false

开启后 let x = 10; x = 'hello' 报错(变成ts效果 一般搭配allowJs一起用)

"compilerOptions": {
    "allowJs": true
    "checkJs": true,
}

  5.9 removeComments

是否删除编译后的js注释

默认值: false

"compilerOptions": {
   "removeComments": true
}

 开启后ts写的注释 js文件中没有

  5.10 noEmit

不对ts文件进行编译 (感觉一点用没有)

默认值: false

"compilerOptions": {
   "noEmit": true
}

  5.11 严格检查

    · alwaysStrict

      用来设置编译后的文件是否使用严格模式

      默认值: false

    · noImplicitAny

      不允许隐式any类型 开启后 let x; 会报错

    · noImplicitThis

      不允许不明确类型的this

    · strictNullChecks

      严格的检查空值

    · strictBindCallApply

      严格检查bind、call和apply的参数列表

    · strictFunctionTypes

      严格检查函数的类型

    · strictPropertyInitialization

      严格检查属性是否初始化

  5.12 额外检查      

    · noFallthroughCasesInSwitch

     检查switch语句包含正确的break

    · noImplicitReturns

      检查函数没有隐式的返回值

    · noUnusedLocals

      检查未使用的局部变量

    · noUnusedParameters

      检查未使用的参数

      

记录下来方便自己理解,当笔记用,

参考:

b站视频: 尚硅谷2021版TypeScript教程(李立超老师TS新课)(BV1Xy4y1v7S2)

github:  typescript-learn 作者: JasonkayZK

### 解决 `tsconfig.web.json` 文件未找到的问题 当遇到错误提示 “Cannot find base config file @vue/tsconfig/tsconfig.web.” 时,这通常意味着 TypeScript 编译器无法定位到指定的基础配置文件。为了修复此问题,可以采取以下几个措施: #### 修改 `tsconfig.json` 确保项目根目录下的 `tsconfig.json` 正确引用基础配置路径。如果使用的是 Vue CLI 或 Vite 创建的项目,则应确认如下设置是否存在并正确无误[^1]。 ```json { "extends": "@vue/tsconfig/tsconfig.web.json", "compilerOptions": { ... }, "include": [ "src/**/*.ts", "src/**/*.d.ts" ] } ``` #### 安装缺失依赖项 有时该问题可能是由于缺少必要的包引起的。尝试安装最新版本的相关开发依赖来解决问题: ```bash npm install --save-dev @vue/tsconfig ``` #### 检查工作区结构 对于多库或多应用的工作空间布局,需特别注意相对路径是否匹配实际位置。可能需要调整 `extends` 字段中的路径以适应具体环境需求。 #### 使用绝对导入 考虑采用基于项目的绝对路径方式来进行模块解析,这样能减少因相对路径引起的各种麻烦。可以在 `jsconfig.json` 或者 `tsconfig.json` 中加入以下配置选项: ```json { "baseUrl": ".", "paths": { "~/*": ["./src/*"] } } ``` 通过上述方法应该能够有效处理找不到 `@vue/tsconfig/tsconfig.web.json` 的情况。若仍然存在困难,建议查看官方文档获取更多帮助或向社区寻求支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值