type与interface
相同点
type addType = (a:number,b:number)=>number
interface关键字:定义函数
interface addType1{(a:number,b:number):number}let fun:addType = function(a,b){return a + b}fun(1,2)
type
type是什么?作用?
type是定义类型别名
语法和使用
语法:type 名称 = 值
使用:
interface接口
什么叫interface?
interface(使用接口)是来定义对象类型的
作用是:校验工具,验证对象的属性是否符合规则
基本语法和使用
interface格式
interface 首字母大写变量名{
key: value的类型 ;
}
⚠️:首字母大写,interface中以分号结尾
可选属性
只读属性
指定多个属性值其中的一个
任意属性
[propName: string] : any
interface Person{name:string;age:number;sex:'男'|'女'; // |代表或,只能是两个值中的一个readonly cardId:string; // readonly代表只读属性hourse?:boolean; // ?代表改属性可有可无[propName: string]:any; // 任意属性名且属性名必须是string,任意属性名的值是anyrun():string; // 定义方法返回值}let obj: Person = {name:'zhangsan',age:18,sex:'男',cardId:'510xxx',xxx:[],run:function(){return 'a'}}
函数类型
接口除了描述带有属性的普通对象外,接口也可以描述函数类型。
interface FunType{(v1:string,v2:number):string}let useFun:FunType = function(str,num){return str + num}console.log(useFun('xxx',123));
对于函数类型的类型检查来说,函数的参数名不需要与接口里定义的名字相匹配,函数的参数会逐个进行检查,要求对应位置上的参数类型是兼容的
