Siento mi pregunta estúpida, pero no puedo buscar la respuesta para mi problema. TS7053: El elemento tiene implícitamente un tipo 'cualquiera' porque la expresión de tipo 'cadena' no se puede usar para indexar el tipo '{ ancho: número; altura: número; título: cadena; }'
let menu:{width:number; height:number; title:string} = { width: 200, height: 300, title: 'My menu', } function multiplyNumeric(menu:{width:number; height: number; title: string}):void { for (let k in menu){ if (typeof menu[k] === "number"){ menu[k] = Number(menu[k]) * 2; } } } multiplyNumeric(menu);TypeScript no sabe qué significa k en el contexto del bucle for dentro de la función multiplyNumeric .
Dado que el tipo de Menu está estrictamente definido y usted está determinando el valor de Menu en tiempo de ejecución, deberá agregar un genérico adicional al tipo de apoyo a Menu , como este:
type Menu = { width: number; height: number; title: string; [prop: string]: number | string; };En su función de multiplicación numérica, el parámetro 'menú' tiene un tipo de datos no válido. No se puede configurar así. Por lo que entiendo, quiere que su parámetro de menú sea un objeto con tres propiedades
{ width:number; height: number; title: string }Necesita definir una interfaz para hacer el trabajo.
inteface menuObj { width:number; height: number; title: string; }Y luego haz algo como esto:
function multiplyNumeric(menu: menuObj)