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

TypeScript 编译配置

TypeScript的编译配置:

对单独一个ts文件进行监听编译 可使用tsc demo.ts -w
如果想对所有ts文件进行监听编译,监听到变化就自己编译,可以直接创建一个tsconfig.json文件。内容空着也OK:{},执行 tsctsc -w
如果有相应的需求,可以在根目录下创建一个文件
tsconfig.json,在此文件中进行配置:

{/** tsconfig.json 是ts编译器的配置文件,ts编译器可以根据它的信息对代码进行编译* "include" 用来指定哪些ts文件需要被编译 * 	路径:** 表示任意目录* 		   * 表示任意文件* "exclude" 不需要被编译的文件目录* 	默认值:["node_modules","bower_components","jspm_packages"] * "extends" 定义被继承的配置文件 * "files" 指定被编译文件的列表 需要编译的文件少时可使用此选项* "compilerOptions" 编译器的选项* 	=======compilerOptions常用的配置项=======* 	"target" 用来指定ts被编译为ES的版本 具体值如下所示:* 	 es3,es5,es6,es2015,es2016,es2017,es2018,es2019,es2020,esnext* 	"module" 指定要使用的模块化的规范 值为以下所示:* 	none,commonjs,amd,syste,umd,es6,es2015,es2020,esnext* 	"lib" 用来指定项目中要使用的库 * 		如在node环境下,使用documen,可配置 一般不需要配置* 		(一般在浏览器运行,不需要处理) 可选值居多,dom,es6...* 	"outDir" 用来指定编译后文件所在的目录* 	"outFile" 将代码合并为一个文件  后期交给打包工具即可,只做了解* 		设置outFile后,所有全局作用域中的代码会合并到同一个文件中* 		注意:在想合并两个模块时,module要选择system/amd,否则会报错 * 		"module":"system" * 	"allowJs" 是否对js文件进行编译 默认为false* 	"checkJs" 是否检查js代码是否符合语法规范 默认为false* 	"removeComments" 是否移除注释 默认为false* 	"noEmit" 不生成编译后的文件 默认为false * 		若只想简单看下语法是否正确,不要编译后文件可写 noEmit:true* 	"noEmitOnError" 当有错误时不生成编译后的文件 * 		可避免有错误的代码编译到dist下文件中* 	=========compilerOptions 语法检查配置项===========* 	"strict" 所有严格检查的总开关* 	"alwaysStrict" 用来设置编译后的文件是否使用严格模式 默认为false	* 	"noImplicitAny" 不允许隐式的any类型 * 		如果设为true,代码中会对any类型的值进行提示* 	"noImplicitThis" 不允许不明确类型的this* 		可在代码中写function fn(this:Window){console.log(this)}* 			function fn(this:any){console.log(this)}	* 	"strictNullChecks" 严格的检查空值 * 		代码中可以写* 			let box1 = document.getElementByid('box1')* 			if(box1 !== null){* 				box1.addEventListener('click',function(){* 					console.log('hello')* 				})	* 			}* 			也可写为:* 				box1?..addEventListener('click',function(){* 					console.log('hello')* 				})	* */"include":["./src/**/*", // src目录下任意目录下的任意ts文件],"exclude":["./src/hi/**/*"],"extends":"./config/base" // 表示此配置文件会自动包含config文件下base.json中的配置信息"files": ["core.ts","tsc.ts"],"compilerOptions":{// 常用配置"target":"es2015", "module":"es2015",//"lib":["dom"],"outDir":"./dist","allowJs":true, "checkJs":false,"removeComments":true,"noEmit":false,"noEmitOnError":true,// 语法检查"strict":true,"alwaysStrict":true, // 如果有模块的引入时,文件会自动启用严格模式"noImplicitAny":true,"noImplicitThis":true,"strictNullChecks":true}
}

tsconfig.json 常用配置项:

  • “include” 用来指定哪些ts文件需要被编译

     路径:** 表示任意目录* 表示任意文件
    
  • “exclude” 不需要被编译的文件目录。

     默认值exclude:["node_modules","bower_components","jspm_packages"] 
    
  • “extends” 定义被继承的配置文件

  • “files” 指定被编译文件的列表 需要编译的文件少时可使用此选项

  • “compilerOptions” 编译器的选项

     ---------compilerOptions常用的配置项------"target" 用来指定ts被编译为ES的版本* 可选值如下:es3,es5,es6,es2015,es2016,es2017,es2018,es2019,es2020,esnext"module" 指定要使用的模块化的规范 值为以下所示:none,commonjs,amd,syste,umd,es6,es2015,es2020,esnext"lib" 用来指定项目中要使用的库 如在node环境下,使用documen,可配置 一般不需要配置(一般在浏览器运行,不需要处理) 可选值居多,dom,es6..."outDir" 用来指定编译后文件所在的目录"outFile" 将代码合并为一个文件  后期交给打包工具即可,只做了解设置outFile后,所有全局作用域中的代码会合并到同一个文件中注意:在想合并两个模块时,module要选择system/amd,否则会报错 "module":"system" "allowJs" 是否对js文件进行编译 默认为false"checkJs" 是否检查js代码是否符合语法规范 默认为false"removeComments" 是否移除注释 默认为false"noEmit" 不生成编译后的文件 默认为false 若只想简单看下语法是否正确,不要编译后文件可写 noEmit:true"noEmitOnError" 当有错误时不生成编译后的文件 可避免有错误的代码编译到dist下文件中-----compilerOptions 语法检查配置项----------"strict" 所有严格检查的总开关"alwaysStrict" 用来设置编译后的文件是否使用严格模式 默认为false	"noImplicitAny" 不允许隐式的any类型 如果设为true,代码中会对any类型的值进行提示"noImplicitThis" 不允许不明确类型的this可在代码中写function fn(this:Window){console.log(this)}function fn(this:any){console.log(this)}	"strictNullChecks" 严格的检查空值 代码中可以写let box1 = document.getElementByid('box1')if(box1 !== null){box1.addEventListener('click',function(){console.log('hello')})	}也可写为:box1?..addEventListener('click',function(){console.log('hello')})	
    

可参考网址:tsconfig.json

相关文章:

TypeScript 编译配置

TypeScript的编译配置: 对单独一个ts文件进行监听编译 可使用tsc demo.ts -w 如果想对所有ts文件进行监听编译,监听到变化就自己编译,可以直接创建一个tsconfig.json文件。内容空着也OK:{},执行 tsc 或 tsc -w 如果有…...

使用DMA传输实现单片机高效串口转发——以STM32系列为例

使用DMA传输实现单片机高效串口转发——以STM32系列为例 DateAuthorVersionNote2023.08.06Dog TaoV1.01. 完成了文档的撰写。 文章目录 使用DMA传输实现单片机高效串口转发——以STM32系列为例应用场景实现流程源码示例串口与中断配置DMA外设配置DMA发送数据函数串口中断服务函…...

一文了解 Android Auto 车载开发~

作者:牛蛙点点申请出战 背景 我的的产品作为一个海外音乐播放器,在车载场景听歌是一个很普遍的需求。在用户反馈中,也有很多用户提到希望能在车上播放音乐。同时车载音乐也可以作为提升用户消费时长一个抓手。 出海产品,主要服务…...

Pixel4 安卓源码及内核修改编译教程 | 基于Android12 AOSP

之前整理了 Pixel4上的源码过程,下载的话大家可以去镜像网站下载,可以节约很多时间。 实验设备:Ubuntu18.04 32G2T Pixel4 文章目录 一、安卓源码下载1.准备下载环境(1)安装Python 3.9(2)安装g…...

如何做好Code Review

本文主要从我们为什么需要CR?CR面临哪些挑战?CR的最佳实践几个方面分析,希望可以给读者一些参考。 为什么需要CR? 代码质量 定性来看,大家都认可Code Review(后文简称CR)能显著改善代码质量&…...

Unity技术框架集合、Unity技术栈汇总

引擎技术尝试 [Animancer-Pro] (https://assetstore.unity.com/packages/tools/animation/animancer-pro-116514) (基于Playable的简单强大的动画解决方案)[ProBuilder/UModeler] (https://assetstore.unity.com/packages/tools/modeling/umodeler-80868) (快速关卡原型构建…...

安卓SDK开发的一些疑问

目前,公司需要开发一套iOS和安卓的sdk,主要包含蓝牙管理、网络请求、倒计时等方案执行、蓝牙数据交互等功能。之前没有过开发安卓sdk的经历,写个笔记用以记录。 现在iOS sdk已经写了一部分,安卓开发我也习惯从iOS的角度类比来开发…...

【基础类】—三栏页面布局的方案和优缺点

一、假设高度已知&#xff0c;中间宽度自适应&#xff0c;三栏&#xff08;列&#xff09;布局的方案有哪些&#xff1f; float浮动、absolute绝对定位、flex弹性盒子、table表格布局、grid网格布局 浮动 float <style>* {margin: 0;padding: 0;}.container {width: 1…...

OPENCV C++(四)形态学操作+连通域统计

形态学操作 先得到一个卷积核 Mat kernel getStructuringElement(MORPH_RECT,Size(5,5)); 第一个是形状 第二个是卷积核大小 依次为腐蚀 膨胀 开运算 闭运算 Mat erodemat,dilatemat,openmat,closemat;morphologyEx(result1, erodemat, MORPH_ERODE, kernel);morphologyEx…...

tomcat上部署jpress

一.确保有jdk&#xff0c;tomcat和mysql环境 二.新建jpress数据库&#xff0c;新建jpress用户并赋予所有权限 三.将jpress的war上传到tomcat/apache-tomcat-8.5.70/webapps&#xff0c;具体根据你的实际tomcat安装路径为准&#xff0c;上传完成后他会自己解包 四.到浏览器完…...

篇十:外观模式:简化复杂系统

篇十&#xff1a;“外观模式&#xff1a;简化复杂系统” 开始本篇文章之前先推荐一个好用的学习工具&#xff0c;AIRIght&#xff0c;借助于AI助手工具&#xff0c;学习事半功倍。欢迎访问&#xff1a;http://airight.fun/。 另外有2本不错的关于设计模式的资料&#xff0c;分…...

linux gcc __attribute__

__attribute__ 1. 函数属性1.1 __attribute__((noreturn))1.2 __attribute__((format))1.3 __attribute__((const)) 2. 变量属性2.1. __attribute__((aligned))2.2. __attribute__((packed)) 3. 类型属性 __attribute__ 是 GCC 编译器提供的一种特殊语法&#xff0c;它可以用于…...

【SpringCloud】RabbitMQ基础

1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&#xff0c;…...

css, resize 拖拉宽度

效果如下&#xff1a; 可直接复制预览查看属性值: 关键样式属性&#xff1a; resize: horizontal; overflow-x: auto; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content…...

Python识别抖音Tiktok、巨量引擎滑块验证码识别

由于最近比较忙&#xff0c;所以本周搞了一个相对简单的验证码&#xff0c;就是抖音Tiktok的滑块验证码&#xff0c;这也是接到客户的一个需求。这种验证码通常在电脑端登录抖音、巨量引擎的的时候出现。 首先看一下最终的效果&#xff1a; 验证码识别过程 1、利用爬虫采集图…...

EvilBox One靶场笔记

EvilBox: One靶场笔记 信息收集 先fscan找主机192.168.1.102 namp扫端口 开放80,22端口 然后扫目录 └─$ gobuster dir -r -u http://192.168.1.102/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,txt,bak,html在扫secret目录&#xff0c;找…...

shell脚本中的export无效

写了一段shell脚本&#xff1a; #!/bin/bash source Tools/simulation/gazebo-classic/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default export ROS_PACKAGE_PATH$ROS_PACKAGE_PATH:$(pwd) export ROS_PACKAGE_PATH$ROS_PACKAGE_PATH:$(pwd)/Tools/simulation/gazebo…...

前沿分享-鱼形机器人

可能并不太前沿了&#xff0c;是21年底的新闻了&#xff0c;但是看见了就顺便发一下吧。 大概就是&#xff0c;通过在pH响应型水凝胶中编码不同的膨胀速率而构建了一种环境适应型变形微机器人,让微型机器人直接向癌细胞输送药物从而减轻药物带来副作用。 技术原理是&#xff0c…...

摄像机终端IP地址白名单配置流程

海康摄像头配置白名单流程 1.登录海康摄像机前端 2.进入配置-系统-安全管理-IP地址过滤 3.IP地址过滤方式选择“允许” 4.点击添加按钮输入对应的IP地址或者IP网段 5.最后勾选启用IP地址过滤&#xff0c;然后保存 大华摄像头配置白名单流程 1.登录大华摄像机前端 2.进入设…...

Glibc—查看版本

方式1&#xff1a;直接查看ldd版本 ldd --versionldd (Buildroot) 2.30 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICU…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...