6 声明文件 axios.d.ts d(declarate 声明) 这种文件 没有逻辑代码 只有声明
5 泛型
(1)function add<T>(arg:T):T{ // 约束传入参数 类型 和 返回值类型一致 ;如果使用:any只能确 保传入和返回值可以是任意类型
return arg
}
(2)泛型约束(当函数里面使用了length 入参必须是含有length的 那么就要在初始化T的时候 给他一个继承)
interface hasLength{
length:number
}
function wraitLength<T extends hasLength>(arg:T):T{
console.log(arg.length)
return arg
}
4 enum
普通enum会在编译js 的时候 将逻辑编入,enum 可以反向推论,常量enum 会 将结果编入 提高性能
常量emun
const enum colors {
red:'red',
pink:'pink'
}
3 联合类型union types 、 类型断言 type assertion、 守卫guard
联合类型:let a = number | string;
类型断言 function add(x:number | string):number{
let x as string;// 把x 当做 并不是类型转换
return x.length
}
守卫guard 其实就是定义变量的时候 就确定了类型
2、函数 :
function a(x:number,y:number):number{
return x + y
}
等同于
let a2(x:number,y:number)=>number =a (在interface 中 定义一个对象 就要使用这种)
interface cc{
a:(x:number,y:number):number
}
1、 interface (接口) :用来描述和约束对象解构的