typescript类型
程序员文章站
2022-07-03 20:49:07
...
// string
let a: string;
a = 'str'
//number
let b:number;
b = 123;
//boolean
let c:boolean;
c = true
//字面量
let d: string | number
d = 'str'
d = 123
//any 表示的是任意类型,一个变量设置为any后相对于改变量关闭了ts的类型检测
let e: any;
//声明变量如果不指定类型,则TS解析会自动判断变量的类型为any
let f;
f = 10;
f = 'str'
f = true
//unknown 表示未知类型的值
//unknown 实际上就是一个类型安全的any
//unknown 类型的变量,不能直接赋值给其他变量
if(typeof e === 'string'){
s = e;
}
//类型断言,可以用来告诉解析器变量的实际类型
/*
语法:
变量 as 类型
<类型> 变量
*/
s = e as string;
s = <string>e;
//void 用来表示空,以函数为例,就表示没有返回值的函数
function fn(): void{
}
//never 表示永远不会返回结果
function fn2(): never{
}
// object 表示一个js对象
let h:object;
h = {}
h = function(){}
//{} 用来指定对象中可以包含哪些属性
//语法:{属性名:属性值,属性名:属性值,属性名:属性值}
// 在属性名后面加上?,表示属性是可选的
let j:{name:string,age?:number}
j = {name:'孙悟空'};
//[propName:string]:any 表示任意类型的属性
let k:{name:string,[propName:string]:any}
k = {name:'猪八戒',a:1,b:2}
/*
设置函数结构的类型声明:
语法:(形参:类型,形参...)=>返回值
*/
let t:(a:number,b:number)=>number;
t = function (n1,n2){
return n1+n2
}
t(1,2)
/*
数组的类型声明:
类型[]
Array<类型>
*/
//string[]表示字符串数组
let y:string[];
y = ['1','2','3']
let u:number[]
u = [1,2,3,4]
/*
tuple,就是固定长度的数组
语法:[类型,类型,类型]
*/
let q = [string,strimg,strimg]
q = ['hello','abc']
/*
enum 枚举
*/
enum Gender {
Male,
female
}
let v:{name:string,gender:Gender}
v = {
name:'张三',
gender:Gender.Male
}
// 类型的别名
type myTYPE = 1 | 2 | 3 | 4 | 5;
let k:myTYPE
let l:myTYPE
let m:myTYPE