TypeScript数据类型 -- tuple、enum、any、never、union、literal...
声明变量的关键字
-
let
-
const
-
var(官方不推荐再继续使用)
TypeScript 的类型
基础类型
-
number
string
boolean
array
null
undefined
object
-
tuple
enum
void
never
any
高级类型(部分)
union 组合类型
Nullable 可空类型
Literal 预定义类型
数字、布尔、字符串
-
number:表示 整数、浮点数、正负数
-
boolean:真 或者 假
-
string:
""
、''
、``
- 反引号:
``
,可以创建一个字符串模板
- 反引号:
数组(Array)、元组(Tupple)
-
array:
[]
存放任意类型的数据-
let list1: number[] = [1, 2, 3]
-
let list2: Array<number> = [1, 2, 3]
-
let list3 = [1, 'abc']
-
-
tupple:固定长度、固定类型的特殊数组
let person : [number, string] = [1, 'abc']
联合(Union)、字面量(Literal)
-
union:支持多个类型的赋值
let union1: string | number
-
literal:支持指定值的赋值
let literal1: 1 | '2' | true | [1, '2', false]
枚举(Enum)
-
默认从0开始,可以指定值
enum Color{ red, green = 3 , blue = '蓝色' } let color1 = Color.blue console.log(color1) // 蓝色 console.log(Color.red) // 0 console.log(Color.green) //3
Any、Unknown
-
any:动态支持任意类型
-
unknown:未知类型,比any的限制性大一点
let randomValue:unknown if (typeof randomValue === 'function'){ randomValue() } if (typeof randomValue === 'string'){ randomValue.toUpperCase() }
函数返回值:void、undefined、never
-
void:没有声明的变量
function onlyPrint1():void{ console.log('---') }
-
undefined:申明的变量没有赋值
function onlyPrint2():undefined{ console.log('===') return }
-
nerver:执行不到终点
-
function throwErr(msg:string, code: number):never{ throw{ msg, code } console.log('执行不到这里') }
-
function whileLoop():never{ while(true){ console.log('>>>') } }
-
类型适配 Type Assertions
-
使用 Type Assertions 必须对自己的代码有 百分百 的把握才使用,不然运行时可能会出现类型错误
-
let msg:any msg ='strData' // 此时为 any类型 编辑器不会自动补全、联想出对应类型的方法 console.log(msg.replace('t', 'o')) // 方法一:(<类型>变量名) console.log((<string>msg).toUpperCase()) // 方法二:(变量名 as 类型) console.log((msg as string).split('a'))
函数的参数类型
-
给函数的参数指定类型
-
let log1 = (msg:string) => console.log(msg)
-
-
?
可使参数不用必须传递 默认值为 undefined-
let log2 = (msg:string, code?:number) => console.log(msg,code)
-
-
设置参数默认值
-
let log3 = (msg:string, code:number=2) => console.log(msg,code)
-
分类:
前端
标签:
TypeScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-02-25 Chrome的插件扩展程序安装目录