type MyType<T extends string> = {
[K in T]: K;
};
type MyType<T extends string> = {
[K in T]: K;
};
interface IMyInt extends MyType<'qq' | 'aa'> {}
можно просто отдельное свойство добавить, в котором и будет объект с нужными свойствами
new MirrorObject(["one", "two", "three"])
function createObj<const A extends string[]>(a: A): {[K in A[number]]: K} {
return Object.fromEntries(a.map((v) => [v, v])) as {[K in A[number]]: K};
}
const obj = createObj(["one", "two", "three"]); // см. по ховеру
типизация для тебя мусор? ты странный.
И, всё же, утоли моё любопытство, пожалуйста, для чего тебе такой объект (ключ = значение)?
на работе в проекте такие объекты вместо enum'ов
export const SomeEnum = {
HOME: 'home',
CAR: 'car'
} as const satisfies Record<string, string>
export type SomeEnum = typeof SomeEnum[keyof typeof SomeEnum]
часто опечатки делаются при их задании
Но вот этот момент я вообще не понял. Если функция-генератор у тебя уже есть, то откуда опечатки?
потому что когда делал тип по имени класса, он ругался