我希望创建一个接口,可以扩展任何 TypeScript 类型,并添加一个属性以扩展泛型类型。例如,创建一个类似于下面的 Confidence<any>
类型:
export interface Confidence<T> extends T{
confidenceLevel:number
}
然后可以通过以下方式进行访问:
const date:Confidence<Date> = new Date();
date.confidenceLevel = .9;
这似乎不可能实现(而且我感觉这是反模式),但我可以做。
export type Confidence<T> = T & {
confidenceLevel:number
}
看起来这似乎能实现我的需求,但是我感觉这样做有些作弊。
我知道如果我重写泛型类型的属性,这种“反向扩展”可能会出问题,但这是唯一需要考虑的吗?我对此感到困惑,有什么好的方法可以创建一个仅添加属性的类型呢?
T
是一个可选类型,例如type Confidence<T = never> = T & {...}
,这将返回未定义而不是其余的{...}
,有什么办法可以解决这个问题吗? - Ricardo Dias Morais