2.学习TypeScript 编译选项配置

自动编译

我们可以使用 tsc ...../.ts -w 命令进行ts文件的自动编译

执行后 编译会持续侦听 自动编译 

这种方式只能侦听一个文件 对做项目肯定是不现实的,为了解决这个问题,我们需要添加一个tsconfig.json文件,写入一个基础对象

再有tsconfig.json的前提下,我们可以在目录的终端使用 tsc 命令 一键编译目录下的所有文件,同时也可以使用tsc -w 同时侦听所有ts文件的变化并编译

tsconfig.json就是我们typescript的配置文件 我们的配置全部需要写在这个配置文件之中。

tsconfig.json基础配置

include

用来指定哪些ts文件需要被编译

**表示任意目录 *表示任意文件

  "include": [
    "./src/**/*" //表示根目录下的任意目录的任意文件都会被编译  **表示任意目录 *表示任意文件
  ],

exclude

用来指定哪些ts文件不需要编译

  "compilerOptions": {
    //编译器的选项
    // target 用来指定ts编译为js的版本
    "target": "ES6"
  }

  "exclude": [
    "./src/reject/**/*" // 表示src下面的reject目录中的文件都不编译
  ],

extends

继承其他文件中的配置

files

指定需要编译的文件,只有需要编译的文件较少时使用 与includes相似但麻烦

compilerOptions 常用编译器选项(配置项)

target

target用来指定ts文件编译为js文件的版本 默认转换为es3

  "compilerOptions": {
    //编译器的选项
    // target 用来指定ts编译为js的版本
    "target": "ES6"
  }

在es6版本使用let定义一个变量 变为js文件后就不会变成var了。

可取值为所有的js版本,写错了编译会报错,并且会提示,所以我们可以随便写一个错误的 然后就知道有什么版本了

module

指定使用模块化规范,不同的模块化编译成的js代码是完全不同的 一般使用es6版本

我们新建一个m.ts文件 导出一个变量并且在index中引入 并且使用它

commonjs 

es6

可选值也可以通过错误的报错得到

 lib

库 用来指定我们项目中使用的库,一般情况下不需要修改

可取值 瞎写咯

outDir 

用来指定编译后js文件所放的目录

我们配置一个"./dist"

删除掉之前的js文件后 会发现自动创建了一个dist目录 并且将编译文件放入了 

 

 outFile

将代码合并为一个js文件中

我们将模块化的代码暂时去掉 只定义简单的变量

 

有模块化使用并且需要合并代码的时候, 模块化规范只能选择system和cmd 否则会报错

allowJs

是否对js文件进行编译 默认为false 改为true时,会编译js文件到指定目录

checkJs

编译js文件时候,检查js文件是否符合规范,这个配置如果开启 需要allowJs也开启 不然会报错

let _check = 111
_check = "222"

checkJs设置为true以后,如果不符合规范的话 会报错。

removeComments

是否移除注释,默认为false 我们的ts编译 会讲注释原封不动的编译到js文件中,当将这个配置设置为true后,编译后的js文件不会出现注释

noEmit

不生成编译后的文件,默认为false(生成),修改为true后,将不再生成js文件。

实际用处较少。

noEmitOnError

编译发生错误时,不生成编译后的文件。默认为false(出错时生成)

alwaysStrict

是否开启严格模式 默认为false

当设置为true的时候,编译后的js文件会自动开启"use strict"严格模式

如果我们的代码中使用了模块化相关的代码后 比如import export 就不会出现"use strict"字样,因为js代码如果使用了模块化相关内容 就自动进入了严格模式,所以没有文字体现了。

noImplicitAny

不允许隐式的any类型 默认为false

我们在写某些变量但并没有指定类型的时候,比如说未赋值 或者某些函数中的变量,ts编译器会隐式的给any类型,noImplicitAny这个配置不允许隐式any的出现,编译时会报错

这个选项并不是禁止any的使用,只是禁止隐式any的出现。 

 noImplicitThis

不允许不明确的this出现 默认为false

strictNullChecks 

我们在使用某些属性的时候,若这个属性是个null 可能会出现错误,strictNullChecks会严格的检查有没有可能出现使用空值的情况,如果出现可能出现的问题,会报错

我们可以使用以下方式避免报错的出现 

// if (box != null) {
//   box.addEventListener("click", function () {});
// }
box?.addEventListener("click", function () {});

strict

所有严格检查的总开关,一般放到配置最上方,默认为false。如果此配置设置为true 那么所有的严格检查开关 都会默认设置为true,可以不写其他配置,如果想单独关闭某个 可以单独书写。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫(5) --爬取网页视频

文章目录 爬虫爬取视频指定url发送请求UA伪装请求页面 获取想要的数据解析定位定位音视频位置 存放视频完整代码实现总结 爬虫 Python 爬虫是一种自动化工具,用于从互联网上抓取网页数据并提取有用的信息。Python 因其简洁的语法和丰富的库支持(如 requ…

VS Code Copilot 与 Cursor 对比

选手简介 VS Code Copilot:算是“老牌”编程助手了,虽然Copilot在别的编辑器上也有扩展,不过体验最好的还是VS Code,毕竟都是微软家的所以功能集成更好一些;主要提供的是Complete和Chat能力,也就是代码补全…

基础元器件的学习

1、二极管 1.1二极管的符号 ZD是稳压二极管 VD、V、D是普通二极管的符号。 1.2二极管的反向恢复时间 首先交流电为上正下负,然后下正上负。当二极管接到反向电压,二极管存在寄生电容,电压不能立刻突变,当输入频率变高时&#…

unipp中使用阿里图标,以及闭坑指南

-----------------------------------------------------点赞收藏才是更新的动力------------------------------------------------- unipp中使用阿里图标 官网下载图标在项目中引入使用注意事项 官网下载图标 进入阿里图标网站 将需要下载的图标添加到购物车中 2. 直接下载…

QtCreator配置github copilot实现AI辅助编程

文章目录 1、概述2、配置环境3、演示 1、概述 新时代的浪潮早就已经来临,上不了船的人终将被抛弃,合理使用AI辅助开发、提升效率是大趋势,注意也不要过于依赖。 2024年12月18日,GitHub 官方宣布了一个激动人心的重大消息&#xf…

web实操8-cookie

会话技术 会话: 一次会话中包含多次请求和响应。 客户端浏览器访问服务器的资源,只要客户端或者服务器端不关闭,这始终在一次会话范围内,这一次会话范围内可以包含多次请求并且收到多次相应。 一次会话:浏览器第一…

深度学习之超分辨率算法——SRCNN

网络为基础卷积层 tensorflow 1.14 scipy 1.2.1 numpy 1.16 大概意思就是针对数据,我们先把图片按缩小因子照整数倍进行缩减为小图片,再针对小图片进行插值算法,获得还原后的低分辨率的图片作为标签。 main.py 配置文件 from model im…

Javaweb 在线考试系统

🥂(❁◡❁)您的点赞👍➕评论📝➕收藏⭐是作者创作的最大动力🤞 💖📕🎉🔥 支持我:点赞👍收藏⭐️留言📝欢迎留言讨论 🔥🔥&…

Qt for Python (PySide6)设置程序图标和任务栏图标

环境 使用Qt for Python开发Windows应用程序。 Python版本:3.12 Qt版本:PySide6 前言 先上一个简单的测试程序 from PySide6.QtWidgets import QMainWindow,QLabel,QApplication from PySide6 import QtGui import sysclass MainWindow(QMainWindow)…

【C#】实现Json转Lua (Json2Lua)

关键词: C#、JsonToLua、Json2Lua、对象序列化Lua 前提需引入NewtonsofJson,引入方法可先在Visual Studio 2019 将Newtonsoft.Json.dll文件导入Unity的Plugins下。 Json格式字符串转Lua格式字符串,效果如下: json字符串 {"1": &q…

Windows平台C++部署 vcpkg 安装protobuf + gRPC实现图像传输

vcpkg 安装 https://github.com/microsoft/vcpkg.git.\bootstrap-vcpkg.bat vcpkg --version参考:Windows安装vcpkg教程(VS2022) protocbuf 安装与编译 vcpkg install grpc:x64-windowsprotocbuf 安装与编译 vcpkg install protobuf proto…

ScottPlot学习的常用笔记-02

ScottPlot学习的常用笔记-02 写在前面Why&Target:这里记一些杂项。上下文&背景 先记一下这几个小时的新收获先说一下,为什么可开发可视工具缩放的问题ScottPlot5.0起步.net Core: WinExe.Net Framework也是可以的 写在前面 Why&Target&…

CTF_1

CTF_Show 萌新赛 1.签到题 <?php if(isset($_GET[url])){system("curl https://".$_GET[url].".ctf.show"); }else{show_source(__FILE__); }?> 和 AI 一起分析 1.if(isset($_GET[url]))检查GET请求中是否存在名为url的参数。 curl 2.curl…

【Spring】Spring框架之-AOP

目录 1. AOP的引入 2. AOP相关的概念 2.1 AOP概述 2.2 AOP的优势 2.3. AOP的底层原理--目前先不具体阐述&#xff0c;后面讲 3. Spring的AOP技术-配置文件方式 3.1 AOP相关的术语 3.2 基本准备工作 3.3 AOP配置文件方式的入门 3.4 切入点的表达式 3.5 AOP的通知类型 …

我的2024年度总结

称着这个周末&#xff0c;写一篇2024年度总结&#xff0c;主要记录我过去一年的成长经历以及自己的一些收获。 过去一年的经历&#xff0c;可谓刻骨铭心&#xff0c;一个是24考研惨败&#xff0c;一个是毕设的准备&#xff0c;一个是省考的陪考&#xff0c;一个是找工作的焦虑…

Java 中的字符串

目录 Java 中的字符串字符串的创建字符串的比较字符串的拼接如何定义一个空的字符串 Java 中的字符串 字符串的创建 在 Java 中&#xff0c;可以通过以下几种方式创建字符串&#xff1a; 1.使用字符串字面量&#xff1a; String str "Hello, World!";2.使用 new…

数说故事聚焦“卖车”场景,推出AI汽车销售转化解决方案

没错&#xff0c;“卖车”我们也在行&#xff0c;为某车企“保住”了新车上市的订单。 深耕汽车行业多年&#xff0c;该车企10月份刚发布一款新能源车&#xff0c;其前期已经拥有了大量的保有客户和线上多渠道获取的潜在客户&#xff0c;然而&#xff0c;仍面临两大难题&#x…

javaEE-多线程编程-3

目录 java 常见的包 : 回调函数: 什么是线程: 第一个线程: 验证多线程执行: 内核: 调用sleep()方法: 执行结果分析: 线程创建的几种方式: 1.继承Thread类,重写run()方法. 2.实现Runnable接口,重写run()方法. 3.继承Thread类,重写run()方法.但使用匿名内部类 4.实现…

FFmpeg 框架简介和文件解复用

文章目录 ffmpeg框架简介libavformat库libavcodec库libavdevice库 复用&#xff08;muxers&#xff09;和解复用&#xff08;demuxers&#xff09;容器格式FLVScript Tag Data结构&#xff08;脚本类型、帧类型&#xff09;Audio Tag Data结构&#xff08;音频Tag&#xff09;V…

芯片级IO (Pad) Ring IP Checklist

SoC top顶层数字后端实现都会涉及到IO Ring &#xff08;PAD Ring&#xff09;的设计。这里面包括VDD IO,VDDIO IO, Signal IO, Corner IO&#xff0c;Filler IO&#xff0c;IO power cut cell等等。 数字后端零基础入门系列 | Innovus零基础LAB学习Day2 数字IC后端实现TOP F…