interface 接口 type 类型别名
例如 interface IProps {
name:'',
age:number
}
type IState={
name:'',
age:''
}
interface通过extends 继承来扩展
interface studentPorps extends IProps {
gender:string
}
也可以通过继续声明的方式来扩展
例如 interface IProps {
qq:number
}
type通过$来扩展类型 type不可重复声明赋值
type studentState = Istate & {gender:string}
| 与 &
interface name{
name:string
}
interface age {
age:number
}
function test(obj:name&age){}
这里的意思就是 obj对象必须有name属性和age属性 且必须传入对应的类型
function test(obj:name|age){}
这里的意思就是 obj对象必须有name属性或者age属性 只需要一个就行 且必须传入对应的类型