TypeScript 类型 类型别名 类型断言
JavaScript 数据类型
ECMAScript定义了8种数据类型
7种原始类型
Boolean
Null
Undefined
Number
BigInt(ES10)
String
Symbol
1种引用类型
Object
TypeScript 类型
需要注意的几个点
- unitypes联合类型 值可以是多个类型的其中之一
// 变量
let unitTypsVar: Number | String | Object;
unitTypsVar = {}
console.log(unitTypsVar)
// 指定数组元素类型
let typesArr : (number | string | Object) [] = [1,2,3,'4',{}]
- never类型
代表函数的终点无法被执行到
let fnNever: () => never = () => {
throw new Error('never')
}
function infiniteLoop(): never {
while (true) {
}
}
- 元组
元组Tuple 起源于函数式编程,指定数组类型和数组元素个数
let tuple : [string,number,object] = ['a',1,{}]
- 函数类型
定义函数类型,首先定义形参列表,然后用=>定义函数返回值类型
let sumCust: (x: number, y?: number) => number;
sumCust = function sum(x: number, y?: number) {
typeof y === "number" && (x += y)
return x
}
类型别名
使用type来定义类型别名,方便简化代码,方便类型复用
function sum(x: number, y: number): number {
return x + y
}
// 抽取类型
type sumType = (a: number, b: number) => number
// 复用
const sum2: sumType = sum
sum2(1, 2)
类型断言
有时候我们需要在还不确定类型的时候访问类型的属性和方法,但这个时候编译器往往会报错
类型断言就是告诉编译器,你比它更了解这个类型,而且它不应该因此而发生错误
// 类型断言
type inputType = string | number;
function getLength(input: inputType): number {
return (input as string).length ? (input as string).length : (input as number).toString().length
// 另一种断言写法
// return (<string>input).length ? (<string>input).length : (<number>input).toString().length
}
getLength('a')
getLength(123)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2019-04-11 LoopQueue