Tengo una matriz: const arr = ['foo', 'bar', 'bax'];
Quiero crear un objeto basado en entradas de matriz:
const obj = { foo: true, bar: true, bax: false, fax: true, // typescript should show error here because "fax" is not in "arr" }; ¿Cómo decirle a mecanografiado que todas las claves de obj deben estar dentro de arr ?
Puedes hacer esto:
const arr = ['foo', 'bar', 'bax'] as const; type MappedObject = Record<typeof arr[number], boolean>; const obj: MappedObject = { foo: true, bar: true, bax: false, fax: true, // typescript should show error here because "fax" is not in "arr" };patio de recreo mecanografiado
Problema relacionado con GitHub - Microsoft/TypeScript#28046
const arr = ['foo', 'bar', 'bax']; //I want to create an object based on array entries: const obj = { foo: true, bar: true, bax: false, fax: true, // typescript should show error here because "fax" is not in "arr" }; for(const [key, value] of Object.entries(obj)) { if(!arr.includes(key)) { console.log(`error, ${key}: ${value} not found in array`) } }