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

TypeScript速成

1、类型推断

这里的str已经推断为string类型,不能像JavaScript一样直接给str赋值number类型

2、类型注解

let str:string='abc'

或者

let str:string
str='abc'

3、类型断言

因为typescript会判定这个item可能为undefined类型,但是我们人为可以确定item一定是number类型,所以要符合typescript的规则需要进行断言操作

未断言

断言后

let numArr=[1,2,3]
const result=numArr.find(item => item > 2 ) as number
console.log(result*5)

4、基础类型和联合类型

基础类型

let v1:string='abc'
let v2:number=10
let v3:boolean=true
let nu:null=null
let un:undefined=undefined

联合类型

//赋值只能为string类型或者null
let v4:string|null=null
//赋值只能为1或者2或者3
let v5:1|2|3=2

5、数组、元组、枚举

数组

//不建议写第一种
let arr1=[1,2,3]
let arr2:number[]=[1,2,3]
let arr3:Array<string>=['a','b','c']

元组

let t1:[number,string,number]=[1,'a',2]

修改元组的话只能修改为同类型的数据

比如t1[0]='b'就会报错,t1[0]=3就是对的

元组定义的数据可有可无,但是索引为0的不可以为无

let t1:[number,string?,number?]=[1]

枚举

enum myEnum{A,B,C
}
console.log(myEnum.A)
console.log(myEnum[0])

6、函数

​
function myFn1(a:number,b:number):void{console.log(a+b)
}function myFn2(a:number,b:number):number{return a+b
}function myFn3(a=10,b:string,c?:boolean,...rest:number[]):number{return 100
}
myFn3(20,'a',true,1,2,3)
myFn3(30,'b')​

7、接口

通常用来进行对象的定义

interface Obj{name:string,age:number
}
const obj1:Obj={name:'a',age:10
}
const obj2:Obj={name:'a',age:10
}

8、类型别名

type myUserName=string|number
let a:myUserName='abc'
let b:myUserName=10

9、泛型

function myFn<T>(a:T,b:T):T[]{return [a,b]
}
myFn<number>(1,2)
myFn(1,2)

http://www.xdnf.cn/news/306433.html

相关文章:

  • 使用原生 CSS 实现轮播
  • # YOLOv1:开启实时目标检测的新时代
  • Python基础学习-Day17
  • 20. LangChain电商场景:构建智能客服与个性化推荐系统
  • BufferGeometryUtils
  • Qt案例 以单线程或者单生产者多消费者设计模式实现QFTP模块上传文件夹功能
  • 基于GA遗传优化的不同规模城市TSP问题求解算法matlab仿真
  • 如何在 Ubuntu 24.04 本地安装 DeepSeek ?
  • STM32H743单片机实现ADC+DMA多通道检测
  • Python生活手册-Numpy数组索引:从快递柜到咖啡店的数字化生活指南
  • 易境通货代系统:如何用一套系统解决货代多业务场景痛点?
  • 机器学习-简要与数据集加载
  • 影刀RPA中使用AI模型
  • java中hashmap源码解析(jdk1.8)
  • 代码mark:脚本获取包含全角字符的字符串的长度
  • php中serialize和unserialize的用法详解
  • 开源模型应用落地-qwen模型小试-Qwen3-8B-推理加速-vLLM-Docker(二)
  • 鸿蒙NEXT开发动画(风格的弹性缩放加载动画组件)
  • 长实公布新盘案名“花语海” 打造全新“维港都会公园圈”
  • Dubbo(99)如何在区块链系统中应用Dubbo?
  • RLOO:将多次其他回答的平均reward作为baseline
  • [250505] Arch Linux 正式登陆 Linux 的 Windows 子系统
  • 电动金属硬密封蝶阀泄露等级:水、蒸汽、油品介质的零泄漏守护方案-耀圣
  • Relay 算子调用流程
  • Java 函数式编程
  • 高斯计校准的重要性
  • 【C语言】推箱子小游戏
  • 初步认识java
  • 精益数据分析(42/126):移动应用商业模式的深度剖析与实战要点
  • 浏览器存储 Cookie,Local Storage和Session Storage