Ts基础类型原创
# 基础类型
# 布尔类型
let flag:Boolean = true;
1
# 数字类型
let num:number = 1;
1
# 字符串类型
let char:string = "哈哈!";
1
# undefined
let uni:undefiend = undefined;
1
# null
let obj:null = null;
1
null和undefined可以赋值给其他类型的变量
# 数组
// 一般写法
let arr:number[] = [10];
// 泛型写法
let arr:Array<any> = [10,"fengliang"];
// 接口写法
interface Iarr{
[index: number]: string
}
let name:Iarr = ["feng","liang","haha"];
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 元组
// 数组中的类型,大小,位置都是一一对应的
let arr:[number,string,boolean]= [10,"haha",false];
1
2
2
# 枚举
// 枚举中的每个值都有编号,从0开始
enum color{
red,
green,
blue
}
1
2
3
4
5
6
2
3
4
5
6
# any
// 不限制类型,个数
let val:any = "任意类型";
let arr:any[] = ["",0,true];
1
2
3
2
3
# void
// 但是可以返回undefined和null
let function say():void{
console.log("声明没有返回值");
}
1
2
3
4
2
3
4
# object
let obj:object = {
name:"xiaoli",
age:18
}
1
2
3
4
2
3
4
# 联合类型
// 当typescript不确定一个联合类型的变量具体类型时,我们只能访问联合类型中所有类型共有的方法和属性
// 通过 | 分隔类型,值可以从这些类型中取一个
// 内部对不同类型进行逻辑处理时,可以使用类型断言来针对不同类型进行处理
function say(str:string|number){}
1
2
3
4
2
3
4
# 类型断言
// (<变量类型>变量名) <——断言格式1
// 以上方式不推荐,在ts中<>还可能表示泛型,且在tsx中react会识别为ReactNode。
// 变量名 as 变量类型 <——断言格式2
// 推荐全部使用 as
function say(str:string|number){
if((<string>str).length){
return (str as string).length;
}else{
return str.toString().length;
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 类型
name:string
1
# 接口
interface persion{
first:string,
last:string
}
1
2
3
4
2
3
4
# 类
class persion{
constructor(first:string,last:string){
}
}
1
2
3
4
5
2
3
4
5