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.mzph.cn/news/743318.shtml

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

相关文章

代码随想录算法训练营Day45 ||leetCode 70. 爬楼梯 (进阶)|| 322. 零钱兑换 || 279.完全平方数

70. 爬楼梯 &#xff08;进阶&#xff09; 本质上和leetcode377一样 #include <iostream> #include <vector> using namespace std; int main() {int n, m;while (cin >> n >> m) {vector<int> dp(n 1, 0);dp[0] 1;for (int i 1; i < n; i…

【MySQL 系列】MySQL 索引篇

在 MySQL 中&#xff0c;索引是一种帮助存储引擎快速获取数据的数据结构&#xff0c;形象的说就是索引是数据的目录。它一般是以包含索引键值和一个指向索引键值对应数据记录物理地址的指针的节点的集合的清单的形式存在。通过使用索引&#xff0c; MySQL 可以在不需要扫描整个…

『scrapy爬虫』03. 爬取多个页面(详细注释步骤)

目录 1. 分析网页试着拿到多个页面的url2. 抓取250个电影3. start_requests的使用4. 代码规范导库的优化关于重写最终修改后的代码 总结 欢迎关注 『scrapy爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『scrapy爬虫』 专栏&#xff0c;持续更新中 1. 分析网页试着拿到多个页面…

关于tcp协议

目录 前言&#xff1a; 一、TCP协议的基本概念&#xff1a; 二、TCP协议的主要特点&#xff1a; 2.1面向连接&#xff1a; 2.2可靠传输&#xff1a; 2.3基于字节流&#xff1a; 三、TCP连接的建立与终止&#xff1a; 3.1连接建立&#xff1a; 3.1.1SYN&#xff1a; 3…

MyBatis3源码深度解析(十一)MyBatis常用工具类(四)ObjectFactoryProxyFactory

文章目录 前言3.6 ObjectFactory3.7 ProxyFactory3.8 小结 前言 本节研究ObjectFactory和ProxyFactory的基本用法&#xff0c;因为它们在MyBatis的源码中比较常见。这里不深究ObjectFactory和ProxyFactory的源码&#xff0c;而是放到后续章节再展开。 3.6 ObjectFactory Obj…

朴素贝叶斯 | 多分类问题

目录 一. 贝叶斯公式的推导二. 朴素贝叶斯1. 离散的朴素贝叶斯朴素贝叶斯导入示例 离散的朴素贝叶斯训练 2. 连续的朴素贝叶斯3. 伯努利朴素贝叶斯4. 多项式朴素贝叶斯4.1 Laplace平滑4.2 Lidstone平滑 三. 概率图模型1. 贝叶斯网络(Bayesian Network)1.1 全连接贝叶斯网络1.2 …

中国城市统计年鉴、中国县域统计年鉴、中国财政统计年鉴、中国税务统计年鉴、中国科技统计年鉴、中国卫生统计年鉴​

统计年鉴是指以统计图表和分析说明为主&#xff0c;通过高度密集的统计数据来全面、系统、连续地记录年度经济、社会等各方面发展情况的大型工具书来获取统计数据资料。 统计年鉴是进行各项经济、社会研究的必要前提。而借助于统计年鉴&#xff0c;则是研究者常用的途径。目前国…

redis在微服务领域的贡献,字节跳动只面试两轮

dubbo.registry.addressredis://127.0.0.1:6379 注册上来的数据是这样&#xff0c;类型是hash /dubbo/ s e r v i c e / {service}/ service/{category} 如 /dubbo/com.newboo.sample.api.DemoService/consumers /dubbo/com.newboo.sample.api.DemoService/providers has…

Prompt Learning:人工智能的新篇章

开篇&#xff1a;AI的进化之旅 想象一下&#xff0c;你正在和一位智能助手对话&#xff0c;它不仅理解你的问题&#xff0c;还能提出引导性的问题帮助你更深入地思考。这正是prompt learning的魔力所在——它让机器学习模型变得更加智能和互动。在这篇博客中&#xff0c;我们将…

安装MySQL8.0及以上版本操作步骤

关于mysql安装过程中命令mysqld --initialize --console出错的解答 C:\mysql-8.3.0-winx64\bin>mysqld --initialize --usermysql --console 2024-03-12T11:21:23.201387Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start. 2024-03-12T11:21:23.2068…

【05】消失的数字

hellohello~这里是土土数据结构学习笔记&#x1f973;&#x1f973; &#x1f4a5;个人主页&#xff1a;大耳朵土土垚的博客 &#x1f4a5;所属专栏&#xff1a;C语言函数实现 感谢大家的观看与支持&#x1f339;&#x1f339;&#x1f339; 有问题可以写在评论区或者私信我哦…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Text)

显示一段文本的组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 可以包含Span和ImageSpan子组件。 接口 Text(content?: string | Resource, value?: TextOptions) 从API versi…

论文阅读——ViTAE

ViTAE: Vision Transformer Advanced by Exploring Intrinsic Inductive Bias ViTAE旨在将细胞神经网络中固有的IB引入视觉转换器。如图2所示&#xff0c;ViTAE由两种类型的细胞组成&#xff0c;即RC和NC。RC负责将多尺度上下文和局部信息嵌入到令牌中&#xff0c;NC用于进一步…

AUTOSAR软件配置(3):MCAL下载安装

前言 所有的NXP软件的下载安装都是需要自己在官网去注册账号的 中文的NXP官方网址&#xff1a;恩智浦半导体官方网站 | NXP 半导体 注&#xff1a;本文指导安装教程将以S32K144平台为例展开。 下载 找到下载入口的指引 然后在左侧的导航栏找到AUTOSAR 然后选择4.2版本 在…

java-集合工具类Collections

我们在使用它的时候记得导包 常见API 我们就简单看看第一第二个方法&#xff0c;代码如下&#xff0c;其余的知道用就行

信息系统项目管理师--沟通管理

IT 项⽬成功有关的最重要的四个因素是&#xff1a;主管层的⽀持、⽤户参与、有经验的项⽬经理和清晰的业务⽬标 项⽬沟通管理是确保及时、正确地产⽣、收集、分发、存储和最终处理项⽬信息所需的过程 项⽬沟通管理由两部分组成&#xff1a;⼀是制定策略&#xff0c;确保沟通对…

leetcode一天一题-第1天

为了增加自己的代码实战能力&#xff0c;希望通过刷leetcode的题目&#xff0c;不断提高自己&#xff0c;增加对代码的理解&#xff0c;同时开拓自己的思维方面。 题目名称&#xff1a;两数之和 题目编号&#xff1a;1 题目介绍&#xff1a; 给定一个整数数组 nums 和一个整数…

中介者模式(Mediator Pattern)

中介者模式 说明 中介者模式&#xff08;Mediator Pattern&#xff09;属于行为型模式&#xff0c;又称为调解者模式或调停者模式。用一个中介对象封装一系列的对象交互&#xff0c;中介者使各对象不需要显示地相互作用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立…

【AI大模型应用开发】【LangChain系列】9. 实用技巧:大模型的流式输出在 OpenAI 和 LangChain 中的使用

大家好&#xff0c;我是同学小张&#xff0c;日常分享AI知识和实战案例欢迎 点赞 关注 &#x1f44f;&#xff0c;持续学习&#xff0c;持续干货输出。v: jasper_8017 一起交流&#x1f4ac;&#xff0c;一起进步&#x1f4aa;。微信公众号也可搜【同学小张】 &#x1f64f; 本…

Python使用openpyxl库或pandas库创建.xlsx格式的Excel文件,并向文件不同的sheet按行或按列写入内容

import openpyxl# 创建-一个Workbook对象 wb openpyxl.Workbook()# 创建多个工作表 sheet1 wb.active sheet1.title "s1"sheet2 wb.create_sheet("s2")# 在不同的工作表中写入数据 sheet1["A1"] Data for Sheet1 sheet1["A2"] D…