当前位置:网站首页>TypeScript简记(一)
TypeScript简记(一)
2022-08-09 09:04:00 【月牙尔】
TypeScript简介
Typescript特点:
- 可读性增强:基于语法解析TSDos,ide增强
- 可维护性增强:在编译阶段暴露大部分错误。(多人合作的大型项目中,获得更好的稳定性和开发效率)
- 包含于兼容所有JS特性,支持共存
- 支持渐进式引入与升级
TS相比JS的优势:
- TypeScript工具使重构更变的容易、快捷。
- TypeScript 引入了 JavaScript 中没有的“类”概念。
- TypeScript 中引入了模块的概念,可以把声明、数据、函数和类封装在模块中
- 类型安全功能能在编码期间检测错误,这为开发人员创建了一个更高效的编码和调试过程。
编译器推荐:Vscode
TypeScript基本数据类型
- any(任意类型):声明未any的变量可以赋予任意类型的值;
- number(数字类型):双精度64位浮点值。它可以用来表示整数和分数;
- string(字符串类型):使用单引号或者双引号表示字符串类型。反引号可定义多行文本;
- boolean(布尔类型):表示逻辑值:true和false;
- 数组类型:声明变量为数组;
- void类型:无类型,只能赋予undefined和null。
扩展:
- 元组类型: 用来表示已知元素数量和类型的数组,各元素类型不必相同,在声明时对应位置的类型需要相同;
- enum(枚举类型):用于定义数值集合;
- null:表示对象缺失;
- undefined:初始化变量一直未定义的值;
- never是其他类型的子类型,代表从不会出现的值。
TypeScrip对象数据类型
接口(interface):在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计你面。接口起到一种限制和规范的作用。
注:使用interface关键字定义接口一般首字母大写,并在接口名称上加上大写 I 前缀。
- 任意属性:约束所有对象属性都必须是该属性的子类型;
- 只读属性:约束属性不可在对象初始化外赋值(在对象的属性前加关键字readonly);
- 可选属性:定义该属性可以不存在(在该属性后加上?)。
TypeScrip函数类型
TS中有两种常见的定义函数的方式——函数声明和函数表达式
函数声明:
function sun(x: number, y: number): number{
return x + y;
}函数表达式:
let sum: (x: number, y: number) => number = function(x: number, y: number): number{
return x + y;
}注:不要混淆了TS中的=>和ES6中的=>
TS中表示函数的定义,左边是输入类型,需要用括号括起来,右边是输出类型,
ES6中是一种应用广泛的箭头函数。
TypeScript重载
函数重载:具备不同参数的同名函数。
函数重载具有两天特征:名称相同,参数不同(参数类型、个数不同)
函数重载是多态的一种体现
TS中函数重载主要包括两部分:函数声明,和函数实现。
函数声明:是TSC解析的一种声明体现,实际编译中,并不好编译成具体代码。
参数不同的函数重载:
function print(info: string, message: string): void;而当着两种声明,同时存在在TS的声明文件中,我们就需要用函数重载来实现,这是js没有的特性。
参数个数相同,但是类型不同的函数重载
函数声明中参数的类型是不同的,在这种情况下,就要用到联合类型
function print(message: string | number) {
conlose.log(message)
}可以看出,在TS中实现函数重载的方式分别是利用了TypeScript中的两个类型特性:可选类型和联合类型。
边栏推荐
猜你喜欢

【场景化解决方案】构建设备通讯录,制造业设备上钉实现设备高效管理

XCTF College War "Epidemic" Network Security Sharing Competition Misc wp

【场景化解决方案】构建医疗通讯录,“慧医钉”助力医院实现数字化管理

【场景化解决方案】构建门店通讯录,“门店通”实现零售门店标准化运营

法院3D导航系统-轻松实现室内实时定位导航

【LeetCode每日一题】——225.用队列实现栈

【CNN】2022 ECCV 对比视觉Transformer的在线持续学习

PID控制电机输出作为电机PWM占空比输入的理解

Anaconda4.8.3介绍、安装及使用教程安装(win10)并修改Jupyter默认工作目录

微信小程序转支付宝小程序注意事项
随机推荐
微信小程序转支付宝小程序注意事项
小程序/app触底加载更多数据
leetcode 32. 最长有效括号 (困难)
gin中模型中增删改查+搜索分页
算术表达式求值演示
零搜索量的关键词,你需要布局吗?
历史遗留问题
canal工作原理及简单案例演示
VNCTF2021 部分题目复现
基于 JSch 实现服务的自定义监控解决方案
一篇文章带你熟悉 TCP/IP 协议(网络协议篇二)
【GNN终身学习】2022 CVPR 终身图学习
【培训课程专用】Secureboot
【场景化解决方案】钉钉财务审批同步金蝶云星空
Some of the topics in VNCTF2021 are reproduced
How does STM32 know the usage of FLASH
【CNN】2022 ECCV 对比视觉Transformer的在线持续学习
缓存的使用姿势:缓存穿透了怎么办?
智慧图书馆的导航方案-定位导航导览-只用一个方案全部实现
verilog独热码实现译码MIPS指令集