有没有办法扩展另一个模块的联合类型?下面是一个人为的例子来说明需要,但我得到了一个ts(3200)重复标识符错误的方法。
在Core模块@org/core中,有一个联合类型OptionType:
// In Core module @org/core
export type OptionType = OptionAType | OptionBType;
在另一个模块中,我想扩展核心模块的OptionType以包含一个新类型MyListOptionType。
因此,当任何人使用@org/list
时,他们都可以使用扩展的OptionType。
// In ListModule of another package @org/list
import type { OptionType as OriginalOptionType } from '@org/core';
type MyListOptionType = { foo: string; bar: number };
declare module '@org/core' {
type OptionType = OriginalOptionType | MyListOptionType;
}
但是,我当前的方法会导致重复标识符错误(ts(3200))。
1条答案
按热度按时间wyyhbhjk1#
例如,类型别名不像接口那样合并。没有办法在另一个模块中扩展联合。你只能在你的模块中定义一个联合,并根据需要使用它。