【发布时间】:2020-06-09 09:13:29
【问题描述】:
我想创建一个接口,以便我可以扩展任何打字稿类型以添加属性来扩展泛型类型。例如,创建一个如下所示的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
}
这似乎完成了我想做的事情,尽管我觉得这样做是在作弊。
我认识到如果我覆盖泛型类型的属性,这种“反向扩展”可能会出现问题,但这是唯一的问题吗?我无法解决这个问题,创建仅添加属性的类型的最佳方法是什么?
【问题讨论】:
标签: typescript inheritance typescript-generics