TypeScript编译选项

news2024/11/24 2:53:40

编译单个文件:终端 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.coloradmin.cn/o/1512571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux运维:磁盘分区与挂载详解

Linux运维:磁盘分区与挂载详解 1、磁盘分区的原理2、查看系统中所有的磁盘设备及其分区信息3、进行磁盘分区(对于sdb新磁盘)4、格式化分区5、挂载分区(临时挂载、永久挂载)6、取消挂载分区7、删除分区 💖Th…

防御第七次

1实验拓扑: 2,实验过程 3、实验结果 10.0.2.0/24 PING 192.168.1.0/24

抢先了解:阿里巴巴面试必问!Spring设计思想解析

大家好,我是小米!今天,我要和大家一起探讨阿里巴巴面试中常见的一个热门话题:“Spring设计思想”!如果你也对这个话题感兴趣,那就跟着我一起来了解一下吧! IOC 控制反转 首先,我们来聊聊IOC 控制反转。在软件开发中,IOC(Inversion of Control)即控制反转,是一种重…

Frostmourne - Elasticsearch源日志告警配置

简介 配置Frostmourne 接入Elasticsearch源进行日志匹配告警,并静默规则,告警消息发送到企业微信,告警信息使用Markdown。 部署安装教程查看: https://songxwn.com/frostmourne_install ELK 安装教程:https://songx…

【C++11】来感受lambda表达式的魅力~

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

如何从笔记本电脑恢复已删除的照片

人们相信照片是回忆一生中最难忘事件的最佳媒介。人们在计算机上收集超过 5 GB 的照片是很常见的。然而,在笔记本电脑上保存照片并不安全,因为您可能会因以下原因有意或无意地删除笔记本电脑上的照片: 您的笔记本电脑存储空间几乎已满。您必…

nginx swrr负载均衡算法的二宗罪及其改进的思考

目录 1. swrr负载均衡算法的二宗罪1.1 第一宗罪: 共振引起系统崩溃1.2 第二宗罪: 吃CPU大户 2. 对swrr负载均衡算法的改进的思考2.1 “共振”问题的解决2.2 “吃CPU大户”问题的解决 1. swrr负载均衡算法的二宗罪 swrr是一种基于加权轮询的负载均衡算法。它根据服务器的权重来分…

第42期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

力扣L6--- 两数之和(java版)--2024年3月12日

1.题目 2.知识点 注1:在Java中,数组的长度不是通过调用一个方法获得的,而是通过一个属性直接获得的。因此,正确的语法是nums.length而不是nums.length()。 所以应该使用int m nums.length; 注2:return new int[]{i,…

保研复习数据结构记(4)--树(二叉树、线索树、哈夫曼树,并查集)

一.树的基本术语 1.树 什么是空树?结点数为0的树非空树的特性?有且仅有一个根结点,没有后继的结点称为“叶子结点”,有后继的结点称为“分支结点”,除了根结点外任何一个结点都有且仅有一个前驱,每个结点…

JS的对象

目录 对象:object 对象的创建: 利用对象字面量创建对象: 使用new来进行创建对象: 利用构造函数来创建对象: new的执行: 对象属性的遍历:for in ------ 相当于JAVA的工具类,直…

【NR 定位】3GPP NR Positioning 5G定位标准解读(十四)-DL-TDOA 定位

前言 3GPP NR Positioning 5G定位标准:3GPP TS 38.305 V18 3GPP 标准网址:Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读(一)-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读(…

git pull 报错: 在签出前,请清理存储库工作树

问题: 使用vscode 用git 拉取代码,提示:在签出前,请清理存储库工作树** 原因: git仓库上的代码和本地代码存在冲突了所以会报这个报错。 解决办法: ①git stash 先将本地修改存储起来 ②git pull 拉取远…

websocket 使用示例

websocket 使用示例 前言html中使用vue3中使用1、安装websocket依赖2、代码 vue2中使用1、安装websocket依赖2、代码 前言 即时通讯webSocket 的使用 html中使用 以下是一个简单的 HTML 页面示例,它连接到 WebSocket 服务器并包含一个文本框、一个发送按钮以及 …

案例--某站视频爬取

众所周知,某站的视频是: 由视频和音频分开的。 所以我们进行获取,需要分别获得它的音频和视频数据,然后进行音视频合并。 这么多年了,某站还是老样子,只要加个防盗链就能绕过。(防止403&#xf…

第十四届蓝桥杯C++B组编程题题目以及题解

a.冶炼金属&#xff08;二分&#xff09; 思路&#xff1a; 设任意一条冶炼记录投入金属数量为a,产出金属为b. 对于每一条冶炼记录我们都可以得到 一个转换率V的范围&#xff1a; b<a/v<b1即a/b< v <a/(b1) 为什么是b1呢&#xff1f;因为既然能产出b个金属&#xf…

SpringCloud网关路由及实现

目录 1 前言 2 实现步骤 2.1 创建一个模块作为网关并引入相关依赖 2.3 设置启动类 2.4 配置路由 3 网关路由的补充内容 3.1 路由断言 3.2 路由过滤器 1 前言 前端请求不能直接访问微服务&#xff0c;而是要请求网关。原因及网关的作用如下&#xff1a; ①网关做安全控制…

16. UE5 RPG获取GE应用的回调,并根据Tag设置数据显示到窗口

在上一篇介绍了对标签如何在项目中设置&#xff0c;这一篇先讲解一下如何在GE里面使用GameplayTag标签。 之前我在第十一章节中 11. UE5 RPG使用GameplayEffect修改角色属性&#xff08;二&#xff09;介绍了一些GE的属性&#xff0c;在UE 5.3版本中&#xff0c;修改的配置方式…

Docker部署黑马商城项目笔记

部署后端 创建mysql目录如下&#xff0c;上传对应的文件 运行以下命令 docker run -d \--name mysql \-p 3306:3306 \-e TZAsia/Shanghai \-e MYSQL_ROOT_PASSWORD123 \-v ./mysql/data:/var/lib/mysql \-v ./mysql/conf:/etc/mysql/conf.d \-v ./mysql/init:/docker-entry…

LeetCode(力扣)算法题_1261_在受污染的二叉树中查找元素

今天是2024年3月12日&#xff0c;可能是因为今天是植树节的原因&#xff0c;今天的每日一题是二叉树&#x1f64f;&#x1f3fb; 在受污染的二叉树中查找元素 题目描述 给出一个满足下述规则的二叉树&#xff1a; root.val 0 如果 treeNode.val x 且 treeNode.left ! n…