TypeScript编译选项

编译单个文件:终端 tsc 文件名

自动编译单个文件:终端 tsc 文件名 -w

编译整个项目:tsc 前提是得有ts的配置文件tsconfig.json

自动编译整个项目:tsc --w 

tsconfig.json默认文件内容:

tsconfig.json是ts编译器的配置文件,ts编译器可以根据它的信息对代码进行编译。

注:路径  **表示所有目录 *表示所有文件

  • "includes":[ ] //"includes"用来指定哪些ts文件需要被编译。

"includes":[ "./src/**/*" ]

  • "excludes":[ ] //不需要被编译的文件目录,可选项,可有可无。

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

"excludes":[ "./src/hello/**/*" ]

  • "extends":[ ] //配置文件特别复杂时,引入继承其他的json配置文件。

"extends":["./config/base.json"]

  • "files":[ ]  //单个引入需要编译的文件,通常用在文件很少的情况。

"files":[ "core.ts","sys.ts","types.ts" ]

  • "compilerOptions":{ } // 编译器的选项

compilerOptions子选项:

1. "target":" "   //用来指定ts被编译为ES的版本

 "compilerOptions":{ "target":"ES3" } // ES3(默认)、ES5、ES6/ES2015、ES2017、ES2018、ES2019、ES2020、ESNext

2. "module":" " //指定要使用的模块化的规范

 "compilerOptions":{ "module":'es2015' } //CommonJS、ES6、UMD、AMD、System、ES2015、ES2020、ESNext、None 

3. "lib":[ ]  //用来指定项目中需要使用的库,一般情况下不对lib进行修改。

 "compilerOptions":{ "lib":["dom","es6"] }

4. "outDir':" "  //用来指定编译后文件所在的位置。

 "compilerOptions":{ "outDir":"./dist" }

5. "outFile':" " //用来将js代码合并为一个文件

设置outFile以后,所有全局作用域中ts编译出来的js代码会合并到一个js中,一般会导致不灵活

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

7. "allowJs":false //是否对js文件进行编译,默认为false

8. "checkJs":fasle //是否检查js代码符合语法规范,默认为false

9. "removeComments":false //是否移除注释,默认为false

10. "noEmit":false //false:生成编译后的文件,true:不生成编译后的文件,默认为false

11. "noEmitOnError":false //true:当有错误的时候不生成编译后的文件,默认为false

12. "alwayScript":false //用来设置编译以后的js文件是否使用严格模式,默认为false

13. "noImplicitAny":false //是否允许出现隐式的any类型,默认为false

14. "noImplThis":false //是否允许不明确类型的this,默认为false

15. "strictNullChecks":false //是否严格的检查空值,默认为false

16. "strict":false //所有严格检查的总开关,默认为false

总结

自动编译文件

  1. 编译文件时,使用 -w 指令后,TS编译器会自动监视文件的变化,并在文件发生变化时对文件进行重新编译。
  2. 示例:

tsc xxx.ts -w 

自动编译整个项目

  1. 如果直接使用tsc指令有序列表,则可以自动当前项目下的所有ts文件编译为js文件。
  2. 但是能直接使用tsc命令的前提是,要先在项目根目录下创建一个ts的配置文件tsconfig.json。
  3. tsconfig.json是一个JSON文件,添加配置文件后,只需tsc命令即可完成对整个项目的编译。
  4. 配置选项
  • include 

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

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

示例:

"includes":["src/**/*","tests/**/*"] 

示例中,所有src目录和tests目录下的文件都会被编译。

  • excludes

定义需要排除在外的目录。

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

示例 :

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

示例中,src下hello目录下的全部文件都不会被编译。

  • extends

定义被继承的配置文件

示例

"extends":["./config/base"]

示例中,当前配置文件中会自动包含config目录下base.json中的所有配置信息。

  • files

指定被编译文件的列表,只有需要编译文件少时才会用到。

示例:

"files":[ "core.ts","sys.ts","types.ts" ]

列表中的文件都会被ts编译器所编译。

  • compilerOptions

编译选项是配置文件中非常重要也比较复杂的配置选项。

在compilerOptions中包含多个子选项,用来完成对编译的配置

常用项目选项:

1. target 

设置ts代码编译的目标版本

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

示例:

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

编写的代码将会被编译成ES6版本的js代码。

2. lib

指定代码运行时包含的库(宿主环境)

可选值:ES3(默认)、ES5、ES6/ES2015、ES2017、ES2018、ES2019、ES2020、ESNext、DOM、WebWorker、ScriptHost......

示例:

"compilerOptions":{ "target" : "ES6","lib":["ES6","DOM"],"outDir":"dist","outFIle":"dist/aa.js" }

3. module

设置编译后代码使用的模块化系统。

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

示例:

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

4. outDir

编译后的文件所在的目录。

默认情况下,编译后的js文件会和ts文件位于相同的位置,设置outDir可以改变编译后文件的位置。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/275241.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云服务器Ngnix配置SSL证书开启HTTPS访问

文章目录 前言一、SSL证书是什么?二、如何获取免费SSL证书三、Ngnix配置SSL证书总结 前言 很多童鞋的网站默认访问都是通过80端口的Http服务进行访问,往往都会提示不安全,很多人以为Https有多么高大上,实际不然,他只是…

C库函数-getopt函数总结学习

1、简介 getopt函数是命令行参数解析函数 1、1命令行组成 Command name 程序文件名 operands 操作对象 option 选项 option argument 选项参数 getopt()函数将传递给mian()函数的argc,argv作为参数,同时接受字符串参数optstring – optstring是由选项Option字母组…

前端Vue列表组件 list组件:实现高效数据展示与交互

前端Vue列表组件 list组件:实现高效数据展示与交互 摘要:在前端开发中,列表组件是展示数据的重要手段。本文将介绍如何使用Vue.js构建一个高效、可复用的列表组件,并探讨其在实际项目中的应用。 效果图如下: 一、引言…

【前端】HTML常用标签

因为想当个全栈,所以巩固了一下HTML与CSS和JS基础,这一篇博客是HTML部分 文章目录 HTML 基础标签 1HTML 基础框架HTML 基础标签语义标签文本格式化标签div 与 span 标签图像标签超链接特殊字符 基础标签 2 | 表格表格的使用表格标签表格属性表格的头部与…

利用tree命令自动保存文件层级结构

tree命令的使用 为了将上图左侧的文件目录,生成上图右侧中的文件夹结构列表,保存在txt中,使用了如下cmd命令: C:\armadillo-12.8.0>tree .>list.txt以上tree命令分为3部分: tree 命令. 在当前目录>list.tx…

JavaEE:网络编程

网络编程:通过代码完成基于网络的跨主机通信 跨主机通信方式: 1.TCP/IP网络 2.蓝牙通信 3.近场通信NFC 4.毫米波通信:功率高,带宽高,抗干扰能力差 其中TCP/IP网络是日常编程中最常涉及到的,最通用的跨主机通…

docker私有仓库-harbor的搭建

docker 官方提供的私有仓库 registry,用起来虽然简单 ,但在管理的功能上存在不足。 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker di…

Java项目:基于springboot实现的OA协同办公系统(源码+数据库+毕业论文)

一、项目简介 本项目是一套基于Springbootvue实现的付费自习室系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

Processing基本形状内容和实例

一、Processing的基本形状内容和实例 1.Processing有一组专门绘制基本图形得图案。像线条这样的基本图形可以被连接起来创建更为复杂得形状,例如一片叶子或者一张脸。 2.为了绘制一条直线,我们需要四个参数,两个用于确定初始位置,…

Xterminal:未来的终端体验

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 开发环境篇 ✨特色专栏: M…

【vue.js】文档解读【day 4】 | 事件处理

如果阅读有疑问的话,欢迎评论或私信!! 文章目录 事件处理前言监听事件内联事件处理器方法事件处理器方法与内联事件判断在内联处理器中调用方法在内联事件处理器中访问事件参数修饰符事件修饰符按键修饰符常规按键别名系统按键别名组合按键ex…

(C语言)strcpy与strcpy详解,与模拟实现

目录 1. strcpy strcpy模拟实现&#xff1a; 实现方法1&#xff1a; 实现方法2&#xff1a; 2. strcat strcat模拟实现&#xff1a; 1. strcpy 作用&#xff1a;完成字符串的复制。 头文件&#xff1a;<string.h> destination是字符串要复制到的地点&#xff0c;s…

【轮式平衡机器人】——TMS320F28069片内外设之eCAP

引入 TMS320F28069的eCAP&#xff08;增强型捕获模块&#xff09;是一个强大的外设&#xff0c;用于精确测量和捕获输入信号的事件和时间戳。 在电机控制、传感器数据采集和信号处理等应用中&#xff0c;eCAP模块可以用于测量霍尔传感器、编码器或其他数字输入信号的周期、频…

开源爬虫技术在金融行业市场分析中的应用与实战解析

一、项目介绍 在当今信息技术飞速发展的时代&#xff0c;数据已成为企业最宝贵的资产之一。特别是在${industry}领域&#xff0c;海量数据的获取和分析对于企业洞察市场趋势、优化产品和服务至关重要。在这样的背景下&#xff0c;爬虫技术应运而生&#xff0c;它能够高效地从互…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的农作物害虫检测系统(深度学习模型+UI界面+训练数据集)

摘要&#xff1a;开发农作物害虫检测系统对于提高农业生产效率和作物产量具有关键作用。本篇博客详细介绍了如何运用深度学习构建一个农作物害虫检测系统&#xff0c;并提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5&#xff0…

docker容器镜像管理+compose容器编排(持续更新中)

目录 一、 Docker的基本组成 二、 容器和镜像的关系 2.1 面向对象角度 2.2 从镜像容器角度 三、 容器命令 3.1 使用Ubuntu 3.1.1 下载镜像 3.1.2 新建和启动容器 run 3.1.3交互式 compose编排与部署 1. docker-compose部署 2. docker-compose.yml模板 …

Git版本工具学习

目录 版本控制git配置工作区域文件状态git对象模型基础命令.gitignore忽略文件IDEA集成Git 版本控制 本地版本控制&#xff1a;在本地记录每一次版本更新。 集中版本控制&#xff1a;版本数据都保存在单一服务器&#xff0c;不联网就看不到版本信息。SVN 分布式版本控制&…

《详解:鸿蒙NEXT开发核心技术》

我们现在都知道鸿蒙作为一个国产的全栈自研系统&#xff0c;经过国家主推后。已经引起人们很大的关注&#xff0c;其中作为开发者来说&#xff1b;许多一线大厂已经与其华为鸿蒙展开原生应用的合作了&#xff0c;目前了解到已经有200家。而之后出现了很多的高薪鸿蒙开发岗位&am…

[密码学]OpenSSL实践篇

背景 最近在写Android abl阶段fastboot工具&#xff0c;需要我在Android代码中实现一些鉴权加解密相关的fastboot命令&#xff0c;里面用到了OpenSSL。我们先来实践一下OpenSSL在Linux系统中的指令。 OpenSSL官方网站&#xff1a;OpenSSL 中文手册 | OpenSSL 中文网 1. 查看…

mybatis-plus整合spring boot极速入门

使用mybatis-plus整合spring boot&#xff0c;接下来我来操作一番。 一&#xff0c;创建spring boot工程 勾选下面的选项 紧接着&#xff0c;还有springboot和依赖我们需要选。 这样我们就创建好了我们的spring boot&#xff0c;项目。 简化目录结构&#xff1a; 我们发现&a…