可以包装Typescript接口的字段吗?



我有两个非常相似的界面:

interface Foo {
value: boolean;
time: string;
}
interface ReactiveFoo {
value: BehaviorSubject<boolean>;
time: BehaviorSubject<string>;
}

我更愿意避免代码重复,并使ReactiveFoo接口扩展Foo。我知道有PartialReadonly等实用程序类型

也许这是一种像这样做的方法(不工作):

type ReactiveFoo = Wrapped<Foo, BehaviourSubject>

注:另外,BehaviourSubject是一个泛型类型,需要一个参数,不确定是否可以不带参数传递它

可以像这样硬编码BehaviorSubject类型

type Wrap<Rec> = { [k in keyof Rec]: BehaviorSubject<Rec[k]> };
type Wrapped = Wrap<Foo>;

但是我没有找到一种方法来实际传递一个泛型类型(如BehaviorSubject)作为参数给另一个泛型类型(在这个特定的例子中是Wrap)

相关内容

  • 没有找到相关文章

最新更新