Supongamos que hay un type o interface llamado NumberLookupCriteria :
type NumberLookupCriteria = { dialCode: string; phoneNumber: string; }o
interface NumberLookupCriteria { dialCode: string; phoneNumber: string; } ¿Podemos de alguna manera lograr obtener todas las keys como una matriz JS de cadenas como esta:
const keys = ['dialCode','phoneNumber']¿Alguna idea?
No, no puede porque los tipos y las interfaces no existen en tiempo de ejecución.
Una solución puede ser el uso de la clase
class NumberLookupCriteria { constructor( readonly dialCode: string ="", readonly phoneNumber: string ="", ) {} } const arrayKey = (Object.keys(new NumberLookupCriteria())) console.log(arrayKey) // ["dialCode", "phoneNumber"] const test: NumberLookupCriteria = { dialCode: "a", phoneNumber: "b" } // OK const test: NumberLookupCriteria = { dialCode: "a" } // KO: Property 'phoneNumber' is missing in type '{ dialCode: string; }' but required in type 'NumberLookupCriteria'Hay muchos post al respecto:
Obtenga claves de una interfaz Typescript como matriz de cadenas
Obtener claves de tipo en TypeScript