在打字稿声明合并中,导出接口和导出默认接口有什么区别?



在声明合并中,导出接口和导出默认接口有什么区别?

我认为export interface只是扩展,export default interface将完全覆盖旧接口。

declare module 'react-intl' {
  export interface MessageDescriptor {
    // error: ts(2717), id's type must be string
    id: 'test' | 'test2';
  }
}

如果我使用:

declare module 'react-intl' {
  export default interface MessageDescriptor {
    // ok
    id: 'test' | 'test2';
  }
}

导出接口时,它只会从类导出特定对象,但是当您导出默认接口时,它将导出所有对象并覆盖先前导出的类实例的行为。

最新更新