typescript 如何在不修改原始 interface 的情況下 覆寫類型定義

原始

export interface OptionsJSDOM
{
    virtualConsole?: VirtualConsole,
}

追加擴充 試過以下方式 都不行

export interface IOptions extends OptionsJSDOM
{
    virtualConsole?: VirtualConsole | false,
}
export interface IOptions
{
    virtualConsole?: VirtualConsole | false,
}

export type IConstructorOptions = Partial<IOptions & OptionsJSDOM>;

另外因為實際使用上不可能只有一個屬性

所以不希望以複製原始定義的方式 來取代

阅读 4.6k
2 个回答

interface可以动态的增加新的类型约束,但是似乎不能复写已有类定义属性。

你这种情况是不是使用class interface更符合预期(abstract class),一般接口是面向切边来讲的,一般不会通过继承接口来实现属性扩展的吧

拙见轻喷。

不知道你用的哪个TS版本, 我用的是2.5.3
我这里是可以的:

export interface IComboOptions {
  autoFilter?: boolean | "yes";
}

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题