当前位置:网站首页>typescript ts基础知识之tsconfig.json配置选项
typescript ts基础知识之tsconfig.json配置选项
2022-07-07 14:49:00 【糖糖246】
tsc xxx.ts // 编译xxx.ts文件
tsc xxx.ts -w // 编译并监视xxx.ts文件
tsc // 编译所有ts文件,前提是存在tsconfig.json
tsc -w // 编译并监视所有ts文件,前提是存在tsconfig.json
tsconfig.json是ts的配置文件,里边可以写注释,其常用配置选项如下:
1. include:定义希望被编译文件所在目录,默认值为['**/*'],**表示任意目录,*表示任意文件
"include": [ "./src/**/*" ]
2. exclude:不需要被编译的文件目录,默认值为["node_modules", "bower_components", "jspm_packages"]
"exclude": [ "./src/hello/**/*" ]
3.extends:定义被继承的配置文件,将不想重复写的配置项引入进来
"extends": "./configs/base"
4. files:指定被编译文件的列表,编译文件较少时适用
"files": [
"core.ts",
"tsc.ts",
...
]
5. compilerOptions 编译器的选项
"compilerOptions": {
"target": "ES3", //用来指定ts被编译为的es的版本,值为es版本(见下方标注)
"module": "commonjs", //指定要使用的模块化的规范(值见下方标注)
"lib": ["es6", "dom"], //用来指定项目中要用的库,前端运行代码不需要改变其默认值
"outDir": "./dist", //指定编译后文件所在的目录
"outFile": "./dist/app.js", //将代码合并为一个文件,所有的全局作用域中的代码会合并到一个文件中,若想合并多个模块,需要将module的值改为amd或system,可以结合打包工具完成此功能
"allowJs": false, //是否对js文件进行编译,默认是false
"checkJs": false, //是否检查js代码是否符合语法规范,默认是false
"removeComments": false, //是否移除注释
"noEmit": true, //不生成编译后的文件,默认值是false
"noEmitOnError": false, //当有错误时,不生成编译后的文件,默认false
"strict": false, //所有严格检查的总开关,下方四个设置的总开关
"alwaysStrict": false, //用来设置编译后的文件是否使用严格模式,默认false
"noImplicitAny": false, //不允许隐式的any类型,默认false
"noImlicitThis": false, //不允许不明确类型的this,默认false
"strictNullChecks": false, //严格的检查空值
}
注:
1.es目前版本值:'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'esnext'
2. module可用值为:'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'es2020', 'es2022', 'esnext', 'node16', 'nodenext'
3. 当"noImlicitThis": true时
function fn(this: Window){ console.log(this) }
4. "strictNullChecks": true时
let box = document.getElementById('box')
box.addEventListener('click', function(){...}) //此时box报错,因为可能没有id为box的元素
边栏推荐
猜你喜欢
随机推荐
Personal notes of graphics (1)
爬虫(17) - 面试(2) | 爬虫面试题库
How to determine whether the checkbox in JS is selected
Opencv configuration 2019vs
预测——灰色预测
Logback logging framework third-party jar package is available for free
Tidb cannot start after modifying the configuration file
How can laravel get the public path
Opencv personal notes
ATM系统
二叉搜索树(基操篇)
深度监听 数组深度监听 watch
Laravel post shows an exception when submitting data
Asyncio concept and usage
模拟Servlet的本质
Prediction - Grey Prediction
Binary search tree (basic operation)
What are compiled languages and interpreted languages?
1亿单身男女“在线相亲”,撑起130亿IPO
Performance comparison of tidb for PostgreSQL and yugabytedb on sysbench