TS学习-1

news/2025/3/31 11:52:46/文章来源:https://www.cnblogs.com/foxt/p/18798072

TS简介

  1. TypeScript由微软开发,是基于JavaScript的一个扩展语言。
  2. TypeScript 包含了 JavaScript 的所有内容,即: TypeScriptJavaScript 的超集.
  3. TypeScript 需要编译为 JavaScript ,然后交给浏览器或其他 JavaScript 运行环 境执⾏。
  4. TS静态检查,不需要运行就可以检查。静态类型检查:在代码运⾏前进⾏检查,发现代码的错误或不合理之处,减⼩运⾏时出现异常的⼏率,此种检 查叫『静态类型检查』,TypeScript 和核⼼就是『静态类型检查』,简⾔之就是把运⾏时的 错误前置。
  5. 同样的功能,TypeScript 的代码量要⼤于 JavaScript,但由于 TypeScript 的代码结构更加 清晰,在后期代码的维护中 TypeScript 却胜于 JavaScript

编译TS

浏览器不能直接运⾏ TypeScript 代码,需要编译为 JavaScript再交由浏览器解析器执⾏。

命令行编译

要把 .ts ⽂件编译为.js ⽂件,需要配置 TypeScript的编译环境,步骤如下:

第一步:创建⼀个 .ts ⽂件,例如demo.ts

第二步:全局安装 TypeScript

 npm i typescript -g

第三步:使用命令编译.ts文件

 tsc demo.ts  

自动化编译

第一步:创建TypeScript编译控制文件

tsc --init
  1. ⼯程中会⽣成⼀个 tsconfig.json 配置⽂件,其中包含着很多编译时的配置。
  2. 观察发现,默认编译的JS 版本是 ES7 ,我们可以⼿动调整为其他版本

第二步:监视目录中的.ts文件变化,有变化生成对应的.js

 #监视工程中的所有ts文件变化tsc --watch  或 tsc -w#监视某个文件的变化tsc --watch index.ts

第三步:小优化,当编译出错时不生成.js文件

修改 tsconfig.json 中的 noEmitOnError 配置,启动该配置

1

备注:也可以手动启动

tsc --noEmitOnError --watch

Vue,react:使用官方的脚手架,不需要手动配置,直接可以写ts文件。

类型声明

使用: 来对变量或函数形参,进行类型声明

let a: string //变量a只能存储字符串,小写
let b: number //变量b只能存储数值
let c: boolean  //变量c只能存储布尔值a = 'hello'
a = 100 //警告:不能将类型“number”分配给类型“string”b = 666
b = '你好'//警告:不能将类型“string”分配给类型“number”c = true
c = 666 //警告:不能将类型“number”分配给类型“boolean”// 参数x必须是数字,参数y也必须是数字
function count(x:number,y:number){return x+y
}// 参数x必须是数字,参数y也必须是数字,返回值类型也声明
function count(x:number,y:number):number{return x+y
}//调用也严格
count(100,200) 
count(100,'200') //警告:类型“string”的参数不能赋给类型“number”的参数

: 后也可以写字面量类型

let a: '你好' //a的值只能为字符串
let b: 100 //b的值只能为数字100

类型推断

TS 会根据我们的代码,进⾏类型推导,例如下⾯代码中的变量 d ,只能存储数字

let d = -99 //TypeScript会推断出变量d的类型是数字
d = false //警告:不能将类型“boolean”分配给类型“number

类型总览

JS类型

1

TS数据类型

2

let str1:string//Ts官方推荐的写法
str1='hello'
str1=new String('hello')//报错let str2:String
str2='hello'
str2=new String('hello')console.log(typeof str1)//string
console.log(typeof str2)//object

注意:string是基元,String是包装的对象

3

5

// 原始类型字符串
let str = 'hello'// 当访问str.length时,JavaScript引擎做了以下⼯作:
let size = (function() {// 1. ⾃动装箱:创建⼀个临时的String对象包装原始字符串let tempStringObject = new String(str);// 2. 访问String对象的length属性let lengthValue = tempStringObject.length;return lengthValue;})();// 3. 销毁临时对象,返回⻓度值// (JavaScript引擎⾃动处理对象销毁,开发者⽆感知)
console.log(size); // 输出: 5

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

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

相关文章

出海企业数字化为什么需要双层架构ERP?工博深度解析SAP ERP公有云方案

企业海外业务扩张时,可能由于文化差异、经验差异、合规要求和不断变化的地理政治环境等因素,使总部系统的在海外的推广充满挑战。双层架构ERP通过分层部署策略,帮助企业在保持总部控制力的同时,赋予子公司敏捷性与创新力。Gartner将其定义为IT双模式,第1层专注于业务流程中…

PVE RAID模拟恢复案例

PVE RAID模拟恢复案例 2024年10月10日 14:28 https://www.bilibili.com/read/cv32149324/ 1、正常环境现象,看raid磁盘信息和状态 root@pve:/var/lib/vz/dump# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 238.5G 0 disk ├─sda1 8:1 0 1007K 0 part ├─sda2 …

23593243

2353243谢芷欣

27.7K star!这个SpringBoot+Vue人力资源管理系统,让企业开发事半功倍!

`微人事(vhr)`是一款基于**SpringBoot+Vue**全栈技术打造的企业级人力资源管理系统,采用前后端分离架构设计,整合了Redis缓存、RabbitMQ消息队列、WebSocket实时通信等12+项企业级技术方案。项目自开源以来已获得**27.7K星标**,被广泛应用于中小企业的人事管理系统搭建。嗨,…

如何告别电脑卡顿烦恼?90%人未必知道的远程操作1分钟学会!

不知道你们有没有经历过这样的困扰,当电脑使用了一段时间后发现就不再像刚购买时那么丝滑流畅了?卡顿、等待程序、界面响应的情况常有发生,一次两次或还可接受,多次出现可就要令人头疼不已了。 无论是处理工作文件过程中的突然卡死,还是畅玩游戏时的画面冻结,都会严重影响…

SAP商业AI实测:AI如何升级企业全球化运营能力?

在全球化的浪潮中,企业如何快速应对多地区、多规则的复杂挑战?答案或许藏在AI技术的深度应用中。据IDC报告,目前全世界仅有不到20%的企业使用生成式AI,但企业每投入1美元却能获得高达3到10倍的回报!AI的潜力究竟如何释放?SAP的“AI+流程+数据”模式,给出了解决方案。 SA…

MCR106-ASEMI电机驱动专用MCR106

MCR106-ASEMI电机驱动专用MCR106编辑:LL MCR106-ASEMI电机驱动专用MCR106 型号:MCR106 品牌:ASEMI 封装:TO-92 阻断电压:600V 通态电流:2.55A 类型:单向可控硅 工作温度:-40℃~150℃ 在工业电机控制、大功率电源设备和新能源系统中,如何以更小损耗、更高可靠性应对频繁…

实战指南:智慧碳中和管理平台搭建全流程解析(一)

在“双碳”目标的推动下,企业正面临日益严格的碳排放监管要求。然而,当前的碳管理模式仍存在诸多痛点:数据采集渠道分散,难以形成统一的碳排放账本;碳核算流程复杂,依赖人工统计,效率低且易出错;减排策略缺乏精准测算,难以优化碳资产配置。此外,碳交易市场的发展对企…

基于MQTTX订阅端搭建及基于Qt的发布端搭建

1、基于MQTTX创建MQTT订阅端 MQTTX下载地址为:https://mqttx.app/zh,下载安装后,打开软件界面如下图所示2、创建新的链接 在上图基础上点击“New Connection”按钮,弹出如下所示界面按照图中填充界面相关内容后点击右上角“Connect”按钮进行与服务端的链接,连接成功后如下…