Avatar ·

Cómo especificar el tipo para todos los valores de un objeto en TypeScript, excepto las claves

¡Hola a todos! Tengo un objeto que uso como diccionario. Las claves son strings y los valores son números. Así: ```typescript const myDict = { apple: 5, banana: 3, cherry: 8 }; ``` El problema es que TypeScript no verifica que todos los valores en este objeto sean números. Si accidentalmente escribo `apple: "five"`, no habrá error porque TypeScript infiere el tipo como `{ apple: string | number; banana: number; cherry: number }`, no como `{ [key: string]: number }`. Probé usar `Record`: ```typescript const myDict: Record = { apple: 5, banana: 3, cherry: 8 }; ``` Esto funciona, pero ahora no puedo obtener autocompletado para las claves. Cuando escribo `myDict.apple`, TypeScript muestra que el tipo es `number`, pero no sugiere qué claves existen. Necesito que: 1. Todos los valores sean del mismo tipo (por ejemplo, `number`). 2. TypeScript conozca las claves exactas (string "apple", "banana", "cherry") y dé autocompletado.