安装 npm install -g typescipt
定义基本数据领类型 number string boolean undefined null
//num(变量名) :number(类型) = 15(具体指);
let num:number=15; //
let str:string='abc'; //
let flag:boolean=false; //
let str2:string=`hello,${str},${num}`; //
let u:undefined=undefined;
let n:null=null;
let n1:number=234;
//联合类型
let n2:number|string=100;
//任意类型 any
let n3:any=233;
n3=100;
n3='n3';
数组泛型
//引用类型
//数组 写法
let arr2:number[]=[1,3,45,6,7];
let arr3:string[]=['1','2','3','4'];
//数组联合类型
let arr4:(string|number)[]=['a','b','c',1,2,3];
第二种数组写法 泛型
泛型是指定义函数 接口 或类的时候 不先指定具体的类型,而在使用的时候再指定类型的一种特性 泛型变量T T表示任何类型;
let arr5:Array<number>=[1,2,3];
//定义多个类型
let arr6:Array<number| string>=['1','2',3];
泛型定义函数
/泛型 不会提前告诉你类型 类型 是调用的时候 传参
function f2(n1:number,n2:number):number[]{
return [n1,n2];
};
function f3(n1:string,n2:string):string[]{
return [n1,n2];
};
//泛型写法
function f4<T>(n1:T,n2:T):T[]{
return [n1,n2]
}
f4<boolean>(true,false);
f4<string>('a','b');
f4<number>(10,20);
//number 不包含长度
//泛型约束 写法
interface Ilength{
length:number;
}
function f5<T extends Ilength>(a:T):number{
return a.length;
}
f5<string>('hello');
泛型接口 定义规范
//泛型接口
//定义规范
interface IinspectFn{
(a:number,b:number):boolean;
};
// let fn1=function(s1:number,s2:number):boolean{
// return s1==s2;
// };
let fn1:IinspectFn=function(s1,s2){
return s1==s2
};
fn1(44,10)
let fn2:IinspectFn=function(x,y){
if(x>y){
return true;
}else{
return false;
}
}
泛型接口
interface IinspectFn{
<T>(a:T,b:T):boolean;
};
let fn1:IinspectFn=function(s1,s2){
return s1==s2
};
fn1<number>(44,10)
let fn2:IinspectFn=function(x,y){
if(x>y){
return true;
}else{
return false;
}
};
fn2<string>('33','22');