Avatar ·

Como definir um tipo para todos os valores de um objeto em TypeScript, exceto as chaves?

Olá a todos! Eu tenho um objeto que uso como dicionário. As chaves são strings e os valores são números. Assim: ```typescript const myDict = { apple: 5, banana: 3, cherry: 8 }; ``` O problema é que o TypeScript não verifica se todos os valores neste objeto são números. Se eu acidentalmente escrever `apple: "five"`, não haverá erro, porque o TypeScript infere o tipo como `{ apple: string | number; banana: number; cherry: number }`, e não como `{ [key: string]: number }`. Tentei usar `Record`: ```typescript const myDict: Record = { apple: 5, banana: 3, cherry: 8 }; ``` Isso funciona, mas agora não consigo obter autocomplete para as chaves. Quando escrevo `myDict.apple`, o TypeScript mostra que o tipo é `number`, mas não