ts是什么?
简单来说ts是js的一个超级集合(js是一个弱类型的语言,在写法上有很大的随意性,而ts就是js弱类型转化成强类型的一种,所以ts就是一种强类型的语言)
那么ts都有什么类型呢?
/数字类型
let num:number = 100;
//num = '45';
//字符串类型
let src:string = 'fdfas';
//src = true;
//字符串类型
let add:boolean = true;
//add = 123
//字面量
let a:11
//a = 12;
//任意类型
let c:any;
//不知道类型
let d:unknown;
//void函数返回值:没有返回值 有返回值返回值是啥类型就是啥类型
关于上述代码中有一些类型上的区别我在下面给大家一一解释
首先1.unknow和any的区别?
unknow不能随便赋值给其他的类型使用 any可以但是不建议使用,使用不当容易污染其他变量导致变量类型模糊。
function show(n:string,m:string){
return n+m
}
//无返回类型
function show1(n:string,m:string):void{
}
//数组 在强类型语言上数组一般都是一种类型。当然也可以写多种 在前端的数组在后端一般被叫做集合
let arr:Array<string> = ['1','2'];
let arr1:number[] = [11,22,33];
//元祖 限定个数不能越界
let aa:[string,number] = ['11',22]
aa.push('12') //可以push进去但是只能是规定好的数据类型 且不能通过下标进行添加
//enum 枚举 定义枚举类型
//定义好
enum sex{
nan,
nv
}
let obj:{
name:'zhangsan',
sex:sex
} = {
name:'zhangsan',
sex:sex.nan
}
ts里还有一些元祖 ,枚举 等类型在真正的工作中我所用到的不是很多,大家想了解可以去别的博主哪里去看看,每个人的理解不同
接口和泛型
在这里我所说的接口不是前端写的接口而是ts的接口(就只是字面量)他主要与泛型一起连用,直接上代码:
//接口 这是一个对象接口
interface Person{
name:string,
age:number
}
let p:Person = {
name:'zhangsan',
age:50
}
//方法 函数 也可以是viod
function fn(n:Person):Person{
console.log(n);
return n;
}
//泛型 在定义的时候我只确定类型的个数 在我调用的时候我在确定类型
function fn1<m,v>(u:m,t:v){
}
fn1<string,number>('123',123);
fn1<number,boolean>(12,true);
这样的强类型写法博主我一开始写的时候很反感也许是用js用的习惯了,与工作比起来博主我还是更改了自己的写法,人生就是这样,希望我的讲解能够帮助正在奋斗路上的你。