[TS基础]TS的编译选项
admin
2024-04-27 23:38:13
0

TS的编译选项

  • 一.基础配置选项
    • 1.1 tsc [xxx.ts] -w的使用
    • 1.2 引入tsconfig.json文件
    • 1.3 基础配置选项
      • 1.3.1.compilerOptions编译器选项
  • 笔记说明

一.基础配置选项

1.1 tsc [xxx.ts] -w的使用

  • 编写完TS代码之后,需要执行tsc xxx.ts将TS代码编译转换为JS才能正确执行。这样每次修改每次都进行手动编译不是很方便,可以使用tsc xxx.ts -w来监听文件是否有变化,一旦检测文件发生变化,就会实时的将TS转换成JS。

1.2 引入tsconfig.json文件

  • 1.1中的方法在只有一个TS文件的时候还比较方便,但是文件一多起来,想要实时生成所有的JS文件也会变得麻烦,这个时候就可以通过tsconfig.json文件来配置TS的编译信息
  • 可以在对应项目目录下直接新建文件,或者通过命令行tsc --init来创建该文件信息
  • 有了tsconfig.json之后,通过tsc就能编译项目下所有的TS文件,通过tsc -w就能监视所有的TS文件并编译

1.3 基础配置选项

  • 引入tsconfig.json之后,虽然可以“一键”编译,但是有时我们只希望编译其中一部分的ts代码,这时,就需要我们对tsconfig.json文件进行一定的配置,以满足我们对编译项目的要求
  • include:指定需要编译的文件或目录,*表示任意文件,**表示任意目录
  • exclude:指定不需要编译的文件或目录
  • extents:可以复用之前已有的json文件,减少重复配置
  • file:用于指定单个的文件,范围较小不常用
{/*tsconfig.json是ts编译器的配置文件,ts编译器可以根据它的信息来对代码进行编译*///inclode用来指定哪些ts文件需要被编译  可*表示任意文件  可**表示任意目录"include": ["./src/**/*"  //表示当前的src目录下的任意目录的任意文件都被编译],//配置不希望被编译的文件,一般不用进行配置//有默认值:["node_modules", "bower_components", "jspm_packages"]"exclude": ["./src/test_file/**/*"],//定义需要继承的配置文件,避免重复配置//"extends": "",//直接指定需要编译的文件,不常用,项目比较小的时候适用"files": ["./src/test_file/test_case.ts"]
}

1.3.1.compilerOptions编译器选项

  • target:用来指定编译TS文件时使用的ES版本,默认为兼容性较好的ES3
  • module:指定编译时需要使用的模块化规范
  • lib:用来指定编译时需要使用的库文件,一般不用动
  • outDir:用于指定编译结束后的文件输出位置
  • outFile:将不同代码合并为一个文件(对上述module取值有要求)
  • allowJs:是否对JS文件进行编译,默认false
  • checkJs:是否检查JS文件是否符合语法规范
  • removeComments:是否移除注释
  • noEmit:不生成编译后的文件
  • noEmitOnError:当有语法错误时不生成编译后的文件
  • alwaysStrict:编译后的文件是否启用严格模式
  • noImplicitAny:是否禁止显示的Any类型
  • noImplicitThis:是否允许类型不明的This
  • strictNullChecks:严格检查语法中可能出现的null的值
  • strict:所有严格模式的总开关,建议打开
  "compilerOptions": {// 用来指定TS文件编译时的ES版本,默认为ES3// 可取值:es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'esnext"target": "ES5",// 指定需要使用的模块化的规范// 可取值:'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'es2020', 'es2022', 'esnext', 'node16', 'nodenext'"module": "System",// 用来指定项目中需要使用到的库文件, 随便赋值后可以查看具体值,一般情况下不需要动//"lib": []// 用于指定编译结束后的文件输出的位置"outDir": "./dist",// 用来将不同代码合并为一个文件,将编译输出的js文件合成一个文件// 这个选项是对module文件有一定要求的"outFile": "./dist/outJS.js",// 是否对js文件进行编译,默认false"allowJs": false,// 是否检查js代码是否符合语法规范"checkJs": false,// 是否移除注释,默认false"removeComments": false,// 不生成编译后的文件,默认false"noEmit": false,// 当有错误时不生成编译后的文件"noEmitOnError": false,// 用来设置编译后的文件是否使用严格模式"alwaysStrict": false,// 是否禁止隐式的any类型"noImplicitAny": false,// 不允许类型不明确的this"noImplicitThis": false,// 严格的检查null的值,让编译器检测出有可能是null的值"strictNullChecks": false,// 所有严格检查的总开关,打开的话所有的严格检查都会打开"strict": false}

笔记说明

笔记markdown文件+项目源码
B站对应视频

相关内容

热门资讯

基金净值涨68%,仅15%基民... 本文来源:时代周报 作者:黄宇昆近日,公募基金中报陆续披露,截至发稿时,已有同泰基金、中泰证券资管、...
胜宏科技上半年净利润同比增长3... 国内PCB龙头胜宏科技交出一份亮眼的中期成绩单,营收与利润双双实现两位数高增长,并完成赴港上市,资产...
伊朗阿曼外交斡旋初现成效,霍尔... 霍尔木兹海峡的石油流量正在悄然回升,外交斡旋带来的乐观情绪正在侵蚀此前因战争风险而积累的油价溢价。布...
锂价回暖叠加产能释放,天齐锂业... 锂价从底部区间强势修复、叠加产能持续释放,天齐锂业上半年业绩迎来爆发。2026年上半年,公司实现营业...
美债投资者该关注法债了!策略师... 法国预算危机再度升温,主权债务风险正在成为市场关注焦点。随着法国国债利差持续走阔,投资者对其财政可持...
海尔、苏泊尔、老板电器上半年量... 8月27日晚,海尔智家(600690.SH)、苏泊尔(002032.SZ)、老板电器(002508....
万科上半年营收701.7亿元,... 8月27日,万科企业股份有限公司(万科A,000002.SZ)发布2026年半年度报告。上半年,万科...
谁会是下一个40倍牛股? 推荐... 出品 | 妙投APP作者 | 张博 段明珠编辑 | 丁萍头图 | AI生成在2025年以来由AI驱动...
"增收不增利&quo... 8月28日,江苏苏讯新材料科技股份有限公司(下称"苏讯新材")将在北交所上会接受审议。这家国内镀铬薄...
“小学要求新生填报父母学历职务... 澎湃新闻记者 庄岸 实习生 胡丹 就“新生入学要求填写父母学历、职务和提供照片”,浙江省临海市教育局...