Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何在接口上扩展属性_Typescript_Webstorm - Fatal编程技术网

Typescript 如何在接口上扩展属性

Typescript 如何在接口上扩展属性,typescript,webstorm,Typescript,Webstorm,我有两个接口。接口A是通用接口,而接口B是一个使用较少的特殊扩展 export interface A { foo: { bar1: any; bar2: any; } } export interface B extends A { foo: { bar3: any; } specialBar: Function } 如何使B.foo继承A.foo('bar1','bar2')上的属性,同时扩展B.foo以包含新属性('bar3') 有没有一种

我有两个接口。接口
A
是通用接口,而接口
B
是一个使用较少的特殊扩展

export interface A {
  foo: {
    bar1: any;
    bar2: any;
  } 
}

export interface B extends A {
  foo: {
    bar3: any;
  }
  specialBar: Function
}
如何使
B.foo
继承
A.foo('bar1','bar2')
上的属性,同时扩展
B.foo
以包含新属性
('bar3')

有没有一种方法可以扩展
a.foo
,而不提供
a.foo
自己的接口


目前,WebStorm正在抛出错误:
接口A中的成员的不兼容覆盖

可能不是您真正想要的,但有一个黑客:

const _a = undefined as A

export interface B extends A {
  foo: typeof _a.foo & {
    bar3: any;
  }
  specialBar: Function
}

可能不是你真正想要的,但有一个黑客:

const _a = undefined as A

export interface B extends A {
  foo: typeof _a.foo & {
    bar3: any;
  }
  specialBar: Function
}