当前位置: 首页 > news >正文

TS第二天 Typesrcipt编译

文章目录

  • 自动编译
  • tsconfig.json配置选项
    • include 比较重要
    • exclude
    • extends
    • files
    • compilerOptions 比较重要

自动编译

手动模式:每次ts文件修改完,手动编译一次

tsc 01.ts

监视模式:ts文件修改完,自动监视编译

tsc 01.ts -w

编译所有文件手动模式:
上面两个模式只能编译和监视当前文件,用tsc可以编译所有文件,在改文件中新增一个配置文件,tsconfig.json 空文件即可,里边什么也不填 或者填 {}

这时候执行tsc就可以编译该文档下所有文件了

tsc

监视模式:

tsc -w

tsconfig.json是一个JSON文件,可以添加配置信息

{// 此json文件中可以写注释!/*tsconfig.json是ts编译器的配置文件,ts编译器可以根据它的信息来对代码进行编译*//*"include" 用来指定哪些ts文件需要被编译默认:当前路径下所有文件, **\*路径:** 表示任意目录* 表示任意文件*/"include": ["./src/**/*"],/*"exclude" 不需要被编译的文件目录默认值:["node_modules", "bower_components", "jspm_packages", "./dist"]*/"exclude": ["./src/exclude/**/*"],/*被继承的配置文件例如:"extends": "。/configs/base",*///  "extends": "",/*指定被编译文件的列表,只有需要编译的文件少时才会用到*///  "files": [],/*compilerOptions 编译器的选项*/"compilerOptions": {// target 用来指定ts被编译为的ES的版本// 'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', ..."target": "es2015",// module 指定要使用的模块化的规范// 'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', ..."module": "es2015",// lib用来指定项目中要使用的库// 在node项目中可以声明用到的库,在前端中可以声明dom(浏览器中的内置库,但是在node中是不需要的!)// 默认就是在浏览器中的运行环境!//'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020',// 'esnext', 'dom', 'dom.iterable', ..."lib": ["es6","dom"],// outDir 用来指定编译后文件所在的目录"outDir": "./dist",// 将代码合并为一个文件// 设置outFile后,所有的全局作用域中的代码会合并到同一个文件中//"outFile": "./dist/app.js"// 是否对js文件进行编译,默认是false"allowJs": true,// 是否检查js代码是否符合语法规范,默认是false"checkJs": true,// 是否移除注释"removeComments": true,// 不生成编译后的文件// 仅用TS检查语法"noEmit": false,// 当有错误时不生成编译后的文件"noEmitOnError": true,/*语法检查属性*/// 所有严格检查的总开关"strict": true,// 用来设置编译后的文件是否使用严格模式,默认false// 在ES6中的模块化会自动使用严格模式,而无需在文件开头添加`'use strict'`"alwaysStrict": true,// 不允许隐式的any类型"noImplicitAny": true,// 不允许不明确类型的this"noImplicitThis": true,// 严格的检查空值"strictNullChecks": true}

tsconfig.json配置选项

include 比较重要

定义希望被编译文件所在的目录 ,默认值:[“**/*”]

  "include":["src/**/*", "tests/**/*"]  ** 任意目录* 任意文件所有src目录和tests目录下的文件都会被编译

exclude

定义需要排除在外的目录
默认值:[“node_modules”, “bower_components”, “jspm_packages”]

  "exclude": ["./src/hello/**/*"]src下hello目录下的文件都不会被编译

extends

定义被继承的配置文件

"extends": "./configs/base"
//当前配置文件中会自动包含config目录下base.json中的所有配置信息

files

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

//示例
"files": ["core.ts","sys.ts","types.ts","scanner.ts","parser.ts","utilities.ts","binder.ts","checker.ts","tsc.ts"]//列表中的文件都会被TS编译器所编译

compilerOptions 比较重要

编译器的选项
编译选项是配置文件中非常重要也比较复杂的配置选项
在compilerOptions中包含多个子选项,用来完成对编译的配置

项目选项有以下几种:

1. target
设置ts代码编译的目标版本 ,可选值:
ES3(默认)、ES5、ES6/ES2015、ES7/ES2016、ES2017、ES2018、ES2019、ES2020、ESNext

//示例
"compilerOptions": {"target": "ES6"
}
//我们所编写的ts代码将会被编译为ES6版本的js代码

2. lib
一般情况下不需要修改 指定代码运行时所包含的库(宿主环境),可选值:
ES5、ES6/ES2015、ES7/ES2016、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": "ES2015"   //编译后使用es6模块
}

4. outDir

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

//示例:
"compilerOptions": {"outDir": "./dist"
}
//设置后编译后的js文件将会生成到dist目录

5. outFile

将所有的文件编译为一个js文件
默认会将所有的编写在全局作用域中的代码合并为一个js文件,如果module制定了None、System或AMD则会将模块一起合并到文件之中

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

6. rootDir

指定代码的根目录,默认情况下编译后文件的目录结构会以最长的公共目录为根目录,通过rootDir可以手动指定根目录

//示例
"compilerOptions": {"rootDir": "./src"
}

7. allowJs

是否对js文件编译

8. checkJs

是否对js文件进行检查

//示例:
"compilerOptions": {"allowJs": true,"checkJs": true
}

9. removeComments

是否删除注释,默认值:false

10. noEmit

不对代码进行编译,默认值:false

11. sourceMap
当有错误时不生成js文件
是否生成sourceMap,默认值:false

以下语法检查选项

12. 严格检查
strict
启用所有的严格检查,默认值为true,设置后相当于开启了所有的严格检查
alwaysStrict
总是以严格模式对代码进行编译

noImplicitAny
禁止隐式的any类型

noImplicitThis
禁止类型不明确的this

strictBindCallApply
严格检查bind、call和apply的参数列表

strictFunctionTypes
严格检查函数的类型

strictNullChecks
严格的空值检查

strictPropertyInitialization
严格检查属性是否初始化

13. 额外检查

noFallthroughCasesInSwitch
检查switch语句包含正确的break

noImplicitReturns
检查函数没有隐式的返回值

noUnusedLocals
检查未使用的局部变量

noUnusedParameters
检查未使用的参数

14. 高级

allowUnreachableCode
检查不可达代码 , 可选值:
true,忽略不可达代码
false,不可达代码将引起错误

noEmitOnError
有错误的情况下不进行编译,默认值:false

最终版配置完如下

相关文章:

TS第二天 Typesrcipt编译

文章目录自动编译tsconfig.json配置选项include 比较重要excludeextendsfilescompilerOptions 比较重要自动编译 手动模式:每次ts文件修改完,手动编译一次 tsc 01.ts监视模式:ts文件修改完,自动监视编译 tsc 01.ts -w编译所有文…...

基于C#制作一个飞机大战小游戏

此文主要基于C#制作一个飞机大战游戏,重温经典的同时亦可学习。 实现流程1、创建项目2、界面绘制3、我方飞机4、敌方飞机5、子弹及碰撞检测实现流程 1、创建项目 打开Visual Studio,右侧选择创建新项目。 搜索框输入winform,选择windows窗体…...

git修改历史提交(commit)信息

我们在开发中使用git经常会遇到想要修改之前commit的提交信息,这里记录下怎么使用git修改之前已经提交的信息。一、修改最近一次commit的信息 首先通过git log查看commit信息。 我这里一共有6次commit记录。 最新的commit信息为“Merge branch ‘master’ of https:…...

代码解析工具cpg

cpg 是一个跨语言代码属性图解析工具,它目前支持C/C (C17), Java (Java 13)并且对Go, LLVM, python, TypeScript也有支持,在这个项目的根目录下: cpg-core为cpg解析模块的核心功能,主要包括将代码解析为图,core模块只包括对C/C/Ja…...

Linux虚拟机部署Java环境-Jdk-Mysql

Linux虚拟机部署 author hf 1.安装 电脑安装x-shell工具,然后使用堡垒机基础控件windows版进行安装扫描,最后点击自动检测,保证能扫描到X-shell工具的安装路径 使用堡垒机登录快照夏选择工具点击Xshell进行连接 查看linux版本 root:~# ca…...

每日学术速递2.9

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV、cs.AI、cs.LG、cs.IR 1.Graph Signal Sampling for Inductive One-Bit Matrix Completion: a Closed-form Solution(ICLR 2023) 标题:归纳单比特矩阵完成的图信号采样&am…...

【Linux】进程优先级 | 进程的切换 | 环境变量详解

🤣 爆笑教程 👉 《看表情包学Linux》👈 猛戳订阅 🔥 ​ 💭 写在前面:我们先讲解进程的优先级,探讨为什么会存在优先级,以及如何查看系统进程、进程优先级的修改。然后讲解进程的切…...

leaflet 实现左卷帘效果 (代码示例045)

第045个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中实现左卷帘效果,这里主要引用了leaflet-side-by-side这个插件,直接调用的话,CSS方面有些问题,需要自行调整一下。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配…...

程序的翻译环境和执行环境

程序环境和预处理🦖程序的翻译环境和执行环境🦖详解编译链接🐳 翻译环境🐳 详解编译过程🐳 运行环境🦖预处理详解🐳 预定义符号🐳 #define🦀 #define 定义标识符&#x1…...

2023最新量化优选股票参考(2.9)

还是周一发的那些股票(可以看我周一的文章),安心持仓就好,跑赢指数是大概率的事情,也大概率获得正收益。 其实我知道大家都没法全天一直看盘操作,毕竟要工作,我也是一样,没法一直看盘…...

深眸科技以科技赋能智慧物流搭建,实现周转箱拆垛作业智能化

数字化时代下市场竞争的核心要素转化为科技的竞争,智能化技术的投入是企业占据市场竞争绝对优势的重要支撑。深眸科技凭借轻辙视觉引擎实现周转箱拆垛作业的智能化突破。人力成本增加,企业积极转变特别是在后疫情时代,人力成本迅猛增加&#…...

R数据分析:孟德尔随机化中介的原理和实操二

delta方法 上面的流程跑通之后,对于中介分析,我们需要报告间接效应的估计值和置信区间,还有中介比例的估计值和置信区间,类似下面的这样: 但是其实我们是光跑孟德尔是得不到上面的需要的值的(比如间接效应…...

【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)

系列文章目录 【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧…...

数据库模式(schema)是什么?

在数据库的术语中,模式(schema)是一个逻辑概念,用于组织数据库中的对象。模式中的对象通常包括表、索引、数据类型、序列、视图、存储过程、主键、外键等等。 模式可以为数据库对象提供逻辑隔离功能,不用应用程序可以…...

出现failed to load steamui.dll如何解决?好的修复方法推荐

当你电脑突然出现failed to load steamui.dll的时候,你是否一脸懵逼?根本不知道发生啥时候,突然就会这样报错,其实造成这个原因,主要是因为问题出在steam上,我们还是有很多种方法可以解决的,今天…...

js 原生事件触发

var event nullevent new Event(input);document.querySelectorAll("input[placeholder点击网址 选择远端数据字典网址]")[0].dispatchEvent(event)...

Nacos安装配置(二)

目录 一、概述 二、Nacos 安装 A)Debian11 1)软件环境 2)下载源码或者安装包 3)mysql配置 4)启动服务器 B) Debian11 1) 安装JDK 2) 安装Maven 3) 安装Nacos2 4) 修改访问参数(/conf/applicati…...

【Linux基础知识】

Linux基础知识 Linux基础知识 系统目录结构 /bin: 命令和应用程序。 /boot: 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。 /dev : dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外…...

【王道数据结构】第七章| 查找 | 树

目录 一、查找 1、查找概念 2、顺序查找 3、折半查找 4、分块查找 二、树 1、B树 2、B树的基本操作 3、B树 4、散列查找及其性能分析 5、散列查找及性能分析 一、查找 1、查找概念 查找:在数据集合中寻找满足某种条件的数据元素的过程称为查找。查找…...

VBA提高篇_19 可选参数Optional_ IsMissing _MSgbox

文章目录1. 可选参数Optional2.IsMissing判断参数是否提供,只能判断变体类型3. 使用 : 可以按参数名传递参数 a:1,c:34.Msgbox 常用参数5.VBA颜色常量表1. 可选参数Optional Optional 代表本参数是可选项 False ; 代表参数若不指定,则默认为False Function mySumProduct(r As R…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...