#typescript #typescript-generics
#typescript #typescript-дженерики
Вопрос:
У меня есть некоторый тип блока и объединение, которое включает в себя как значения в штучной упаковке, так и необработанные значения. Как я могу извлечь типы в штучной упаковке?
class Box<T> {};
type United = Box<number> | Box<string> | boolean;
type Unboxed<T> = ???
type ExtractUnited = Unboxed<United>; // number | string
Комментарии:
1. @KevinJohnson как это будет работать?
Ответ №1:
Во-первых, вы должны использовать T
внутри своего Box
класса:
class Box<T> {
constructor(public value: T) {}
};
Во-вторых, объявить Unboxed<T>
как:
type Unboxed<T> = T extends Box<infer U> ? U : never;