У меня есть следующие типы:
type Target = number | undefined;
type MyObject = {
some: string;
properties: string;
id: Target;
}
Я хочу предложить универсальный c способ заменить Target
на number
, например:
type MyObjectTransformed = TargetToNumber<MyObject>;
/**
* MyObjectTransformed is now:
*
* {
* some: string;
* properties: string;
* id: number;
* }
*/
Легко, если вы знаете, что Target
всегда находится в поле id
, мне не нужна помощь с этим.
Но что, если Target
может быть где угодно? Как это должно работать:
TargetToNumber<{
some: string;
other: Target;
properties: string;
}>
И что еще хуже ... оно также должно работать, когда оно вложено! Как это все равно следует заменить Target
на number
:
TargetToNumber<{
some: string;
properties: string;
nested: {
arbitrarily: {
deep: Target;
};
};
}>
Если вам интересно, почему я хочу сделать такую странную вещь, , поэтому я спрашиваю .