Tengo un método cuya estructura se da a continuación.
const a = function (...args: any[]) { console.log(args); } como puede ver en la estructura de la función, el tipo de args es any[] , quiero crear un tipo específico para la matriz de argumentos aceptada por el método. ¿Cómo puedo hacer un tipo específico para los argumentos aceptados por el método en Typescript? NOTA: La función a puede aceptar cualquier tipo de argumento como a(1, 2, 4, 5, 'asgasg', 124.52, { name: 'sparsh' });
Quiero crear un tipo específico para los argumentos aceptados por el método en Typescript.
Puede crear un tipo personalizado:
type x = string | number
y en un caso para adaptarse a su ejemplo:
type User = { name: string; } type x = string | number | User; function a(...args: x[]){}En lugar de any[] que permitiría el acceso a cualquier propiedad, incluidas las potencialmente no válidas, se puede usar unknown[] .
El uso de unknown[] permitiría pasar cualquier tipo de argumento, pero no deshabilitará la verificación de tipos para el acceso a la propiedad, etc. Por ejemplo:
const a = function (...args: unknown[]) { console.log(args); // console.log(args[0].toString); //disallowed by type checking if(typeof args[0] === 'number') console.log(args[0].toFixed()) //allowed } a(2,3,4,5,6,7,"asds"); //ok