Ask Your Question
3

What is the correct way to type a new Map that contains elements such as [['1', ()=>{}], [2, ()=>{}]]? I attempted to use Map<string|number, () => void>, but encountered the TypeScript error "No overload matches".

asked 2023-06-25 01:02:03 +0000

pufferfish gravatar image

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2023-06-25 01:10:01 +0000

lalupa gravatar image

The correct way to type a new Map that contains elements such as [['1', ()=>{}], [2, ()=>{}]] in TypeScript is to use the following syntax:

const myMap: Map<string | number, () => void> = new Map([
  ['1', () => {}],
  [2, () => {}]
]);

Make sure that you are using the correct syntax for declaring a new Map, which is using the new Map() syntax with an array of key-value pairs, where each key-value pair is itself an array. The TypeScript error "No overload matches" typically occurs when there is a mismatch between the types of the elements you are trying to pass and the types expected by the function. Double check that you are using the correct types for the Map keys and values in the declaration of myMap.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss

Add Answer


Question Tools

Stats

Asked: 2023-06-25 01:02:03 +0000

Seen: 11 times

Last updated: Jun 25 '23