export default {}
/*
1.相同点:
- 都可以描述属性或方法
- 都允许拓展
2.不同点:
- type可以声明基本数据类型,联合类型,数组等; interface只能声明变量
- 当出现使用type和interface声明同名的数据时;type会直接报错;interface会进行组合
- type不会自动合并;interface会
*/
// 相同点
// 1.都可以描述属性或者方法
type womenStar = {
name: string
age: number
perform(): any
}
interface IWStar {
name: string
age: number
perform(): any
}
let star1:womenStar = {
name: "邱淑贞",
age: 18,
perform(){
return "倚天屠龙记"
}
}
let star2: IWStar = {
name: "李一桐",
age: 18,
perform() {
return "射雕英雄传"
}
}
// 2.都允许扩展
type money = {
y1: number
}
type money2 = money & {
y2: number
}
let salary:money2 = {
y1: 10,
y2: 20
}
interface Istar1 {
name: string
}
interface Istar2 extends Istar1 {
age: number
}
let starInfo: Istar2 = {
name: "邱淑贞",
age: 18
}
// 不同点
// 1.type 可以声明基本数据类型 ,联合类型 ,数组等等
// interface只可以声明对象
type age = number;
type info = string | number | boolean;
type beautyList = [string | number];
// interface Iage = number;
// interface Iage {
// }
// 2.type不会进行合并
// interface会进行合并
// type mygoddessName = {
// name: string
// }
// type mygoddessName = {
// age: number
// }
interface ImygoddessName{
name: string
}
interface ImygoddessName{
age: number
}
let goddess: ImygoddessName = {
name: "邱淑贞",
age: 18