您的位置:首页 > 游戏 > 手游 > 中国万网的网址是什么_福建省人民政府工作报告_潜江seo_企业员工培训内容及计划

中国万网的网址是什么_福建省人民政府工作报告_潜江seo_企业员工培训内容及计划

2024/11/13 16:19:21 来源:https://blog.csdn.net/gkx19898993699/article/details/143052031  浏览:    关键词:中国万网的网址是什么_福建省人民政府工作报告_潜江seo_企业员工培训内容及计划
中国万网的网址是什么_福建省人民政府工作报告_潜江seo_企业员工培训内容及计划

        引:在学习TS时发现type和interface都可以设置类型/接口,那么他们俩有什么区别呢?又应该怎么选择呢?其实在使用时除了写法不同,他们的作用都是一样的。接下来我们看一下他们有什么异同点吧!


一、相同点

        type和interface都可以用来定义接口/类型:

使用type定义:

type exampleObj = {name: stringage: number
}type exampleFun = (name:string,age:number) => void;

 使用interface定义:

interface exampleObj {name: stringage: number
}interface exampleFun {(name:string,age:number): void;
}

        type和interface都支持继承,且可以支持互相继承,但具体表现形式上面会有区别

type继承是通过&实现的

    type typaA = {name: string}interface interfaceA {name: string}type typeB = typaA & {age: number}type typeC = interfaceA & {age: number}

interface继承是通过extends实现的

    type typaA = {name: string}interface interfaceA {name: string}interface interfaceB extends typaA {age: number}interface interfaceC extends interfaceA {age: number}

二、不同点

type可以通过 typeof 操作符来定义

const name = "Alice";type NameType = typeof name;const newName: NameType = "Bob"; // 正确
// const newName: NameType = 123; // 错误,类型不匹配
const user = {id: 1,name: "Alice",age: 30,
};type UserType = typeof user;const newUser: UserType = {id: 2,name: "Bob",age: 25,
};

 type可以申明 联合类型

    type typaA = {name: string}type typeB = {age: number}type typeC = typaA | typeB

type可以申明 元组类型

    type typaA = {name: string}type typeB = {age: number}type typeC = [typaA , typeB]

interface可以进行声明合并,type重复定义会报错,因此是无法实现声明合并

    interface interfaceA {name: string}interface interfaceA {age: number}/*interfaceA实际结果是:interfaceA {name: stringage: number}*/

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com