typescript - @types - pole hodnot na klíče objektu
Řekněme, že mám seznam řetězců
const arr = ["a", "b", "c"];
Jak přesně to převedu na objekt tak, aby tyto hodnoty byly klíčem pro jakýkoli objekt?
const obj = {
a: "can be anything",
b: 2,
c: 0
}
Zkoušel jsem používat
type TupleToObject<T extends readonly string[]> = {
[P in T[number]]: any;
};
ale nezdá se, že by to bylo silně typované.
Odpověď č. 1
Můžete využít zápis as const v TypeScriptu (viz dokumentace).
const arr = ["a", "b", "c"] as const;
// inferred type: readonly ["a", "b", "c"]
type TupleToObject<T extends readonly string[]> = {
[P in T[number]]: any;
};
type MyObject = TupleToObject<typeof arr>
// type MyObject = {
// a: any;
// b: any;
// c: any;
// }
