请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

interface同名的问题

老师,问几个问题:
为什么interface可以创建两个一样的接口名,不报错,但是type不可以呢
还有我项目中就是定义了多个同名的接口(可不在同一个js里面),
有意思的是编译出来的接口,如果没有实现的话,js里面根本就不会有接口
图片描述

我试了一下,interface在同一个文件中同名会把里面的属性字段合并在一起,同一个属性名如果不同类型的话就会报错,那type为什么不能合并呢 == > 是因为继承的原因吗
例如下面的图片
图片描述

图片描述

图片描述

我这里又两个ts文件,里面都定义了Demo1的接口,我在调用他们的时候肯定不可以同时用他们,所以我在调用的时候,想起一个别名去分开这两个同名的接口,应该怎么做呢

正在回答

1回答

(1)  type 为什么不能合并, 接口能合并,其实是 ts 的一种符合接口和类型的语法规则, (1) interface 定义的是对象类型,对象类型合并才有意义 。 (2) ttype  可以定义任意类型,type A=string  type B={name:"wangwu"}  这样这就没法合并在一起了。


(2)用一个别名去分开这两个同名的接口,方法1:用第10章的 d.ts 声明文件来解决。

方法2:如果在 ts 文件来区分,那么可以用命名空间来解决,

export namespace Store {

  export interface Product {

    name: string

    price: number

    account: number

    buy(): void

  }

}





0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信