Typescript Record Type vs Map

 Typescript Record Type vs Map

Question:

What are the key differences between TypeScript's Record type and Map in terms of usage and functionality?

Answer: The Record type and Map in TypeScript serve distinct purposes, and understanding their differences is crucial for effective use in various scenarios.

Record Type:

The Record type is primarily used to define an object type with specified keys and a uniform value type. It is commonly employed when you want to ensure that an object contains a specific set of keys, each mapped to the same type. Here's an example:

typescript
type MyRecord = Record<"key1" | "key2", string>;

const myObject: MyRecord = {
key1: "value1",
key2: "value2",
// Error: Property 'key3' is missing in type ...
};

In this example, MyRecord ensures that the object has keys "key1" and "key2" with string values. Adding or removing keys beyond the specified ones will result in a type error.

Map:

On the other hand, a Map is a built-in JavaScript/TypeScript data structure that allows you to associate keys with values. Unlike the Record type, a Map is not limited to a predefined set of keys. You can dynamically add, remove, and iterate over key-value pairs. Here's an illustration:

typescript
const myMap = new Map<string, number>();
myMap.set("key1", 1);
myMap.set("key2", 2);

console.log(myMap.get("key1")); // Outputs: 1
console.log(myMap.has("key3")); // Outputs: false

In this case, myMap is not restricted to a predefined set of keys, and you can dynamically manage its content.

Comparison:

  • Use Record when you want a fixed set of keys with a consistent value type.
  • Use Map when you need a dynamic collection of key-value pairs with the flexibility to add, remove, and iterate over entries.

Understanding the distinction between Record and Map enables developers to choose the appropriate tool for their specific use cases, promoting cleaner and more efficient code.

একটি মন্তব্য পোস্ট করুন

0 মন্তব্যসমূহ