Type Manipulation, Mapped Types, Key Remapping (re-mapeado de propiedades)

En TypeScript 4.1 y versiones mas recientes, es posible remapear las propiedades en tipos utilizando la clausula as dentro de un mapped type.

type Etiqueta = {
    id: number;
    cantidad: number;
};

type Remapear<T> = {
    [K in keyof T as `mi${Capitalize<string & K>}`]: T[K];
};

type Remapeado = Remapear<Etiqueta>;

const miEtiqueta: Remapeado = {
    miCantidad: 100,
    miId: 12122,
};