Я хочу создать интерфейс, с помощью которого я могу расширить любой тип машинописи, чтобы добавить свойство для расширения универсального c типа. Например, создайте тип 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
}
, что, кажется, достигло sh того, что я хочу сделать, хотя я чувствую, что я обманываю, делая это.
Я понимаю, что это "обратное расширение" может быть проблематичным c, если я перезаписываю свойство типа generi c, но это единственная проблема? У меня возникли проблемы с обдумыванием этого вопроса. Как лучше всего создать тип, который просто добавляет свойство?