我有一个库,它有以下类型声明:
declare namespace Something {
interface Else extends EventEmitter {
on(event: 'some-event', listener: (event: Event) => void): this;
on(event: 'another-event', listener: (event: OtherEvent) => void): this,
// etc
}
const else: Else;
}
declare module 'something' {
export = Something;
}
它的用法是:
import { else } from 'something';
else.on('some-event', e => { });
我正在创建一个扩展上述库并发出其他事件的库
else
,所以我想扩展上面的类型。以下感觉应该可以工作,但仅当我将其包含在正在使用的模块中时
new-amazing-event
.
declare namespace Something {
interface Else {
on(event: 'new-amazing-event', listener: (arg: AmazingArg) => void): this,
}
}
我如何确保我的库的使用者在不包括上述内容的情况下获得这些扩展类型声明?