欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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