Javascript 扩展接口不';似乎没有实现父成员

Javascript 扩展接口不';似乎没有实现父成员,javascript,typescript,vue.js,interface,polymorphism,Javascript,Typescript,Vue.js,Interface,Polymorphism,我有两个接口 export interface IComponent{ type: ComponentType; name: string; isEnabled:boolean; } export interface IAudioComponent extends IComponent { source: string; volume: number; loop: boolean; playbackRate: number; } 但是当

我有两个接口

export interface IComponent{
    type: ComponentType;
    name: string;
    isEnabled:boolean;
}

export interface IAudioComponent extends IComponent {
    source: string;
    volume: number;
    loop: boolean;
    playbackRate: number;
}
但是当我像这样在VueComponent中记录IAudioComponent时

  data() {
    return {
      _componentGroup: this.componentGroup as IComponentGroup,
      _focussedComponent: this.componentGroup.components[0] as IComponent,
    };
  },
  computed: {
    focussedComponentType() {
      console.log(this.$data._focussedComponent);
      return this.$data._focussedComponent.type;
    }
  },
我在DOM中获得以下输出

{__ob__: Observer}
loop: (...)
name: (...)
playbackRate: (...)
volume: (...)
__ob__: Observer {value: {…}, dep: Dep, vmCount: 0}
get loop: ƒ reactiveGetter()
set loop: ƒ reactiveSetter(newVal)
get name: ƒ reactiveGetter()
set name: ƒ reactiveSetter(newVal)
get playbackRate: ƒ reactiveGetter()
set playbackRate: ƒ reactiveSetter(newVal)
get volume: ƒ reactiveGetter()
set volume: ƒ reactiveSetter(newVal)
__proto__: Object
为什么它不包含类型、名称和isEnabled

在Typescript文档中,他们演示了这一点


这里有一些非常可疑的类型断言:

  _componentGroup: this.componentGroup as IComponentGroup,
  _focussedComponent: this.componentGroup.components[0] as IComponent,

这些只是声明对象是特定类型的,它们不会更改对象。因此,除非这些对象实际上是该类型的对象,否则它们可能实际上没有在接口中定义的任何属性。

isEnabled:boolean,-您在那里有一个逗号,在接口中的任何位置都放上分号。我更改了它,但我仍然有相同的问题。接口不会向对象添加属性。接口的唯一用途是识别对象的形状。如果您没有自己添加这些属性,它们将不存在。对,那么我有点困惑,为什么您可以用另一个接口扩展一个接口,以及它的用途是什么。@哦,为什么您确定这一点?typescript手册中说明了他们使用square.color的地方