تایپاسکریپت - @types - آرایهای از مقادیر به کلیدهای شی
فرض کنیم یک فهرست از رشتهها دارم
const arr = ["a", "b", "c"];
دقیقاً چگونه میتوانم آن را به یک شیء تبدیل کنم به طوری که این مقادیر کلیدی برای هر شیء باشند؟
const obj = {
a: "can be anything",
b: 2,
c: 0
}
من سعی کردهام استفاده کنم
type TupleToObject<T extends readonly string[]> = {
[P in T[number]]: any;
};
اما به نظر نمیرسد که نوع آن قوی باشد.
پاسخ شماره ۱
شما میتوانید از سینتکس as const در تایپاسکریپت استفاده کنید (رجوع کنید به مستندات).
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;
// }
