Espero que os tipos de ambos a
e b
sejam inferidos como número. Por que não é o caso?
const map1 = new Map([
["a", 1]
])
const a = map1.get("a") // number | undefined
const map2 = new Map()
map2.set("b", 2)
const b = map2.get("b") // any
Espero que os tipos de ambos a
e b
sejam inferidos como número. Por que não é o caso?
const map1 = new Map([
["a", 1]
])
const a = map1.get("a") // number | undefined
const map2 = new Map()
map2.set("b", 2)
const b = map2.get("b") // any
No seu primeiro uso, a chave não poderia existir, no segundo não há nada passado ao construtor para inferir. Você pode usar uma classe personalizada se precisar remover
undefined
do método: