Utility types
1. আমরা যদি একটা টাইপের সব property-কে optional বানাতে চাই
➡️ তখন Partial<Type>
ব্যবহার করবো
type User = { name: string; age: number };
type OptionalUser = Partial<User>;
const user: OptionalUser = { name: "Hamim" }; // ঠিক আছে, age না দিলেও চলবে
2. আমরা যদি একটা টাইপের সব optional property-কে required করতে চাই
➡️ তখন Required<Type>
ব্যবহার করবো
type User = { name?: string; age?: number };
type FullUser = Required<User>;
const user: FullUser = { name: "Hamim", age: 18 }; // সব দিতে হবে
3. আমরা যদি একটা টাইপের সব প্রপার্টিকে read-only করতে চাই
➡️ তখন Readonly<Type>
ব্যবহার করবো
type User = { name: string; age: number };
type ReadonlyUser = Readonly<User>;
const user: ReadonlyUser = { name: "Hamim", age: 20 };
// user.age = 25; ❌ Error — পরিবর্তন করা যাবে না
4. আমরা যদি নির্দিষ্ট কিছু key এবং তাদের value টাইপ দিয়ে object টাইপ বানাতে চাই
➡️ তখন Record<Keys, ValueType>
ব্যবহার করবো
type Roles = "admin" | "user";
type AccessMap = Record<Roles, boolean>;
const access: AccessMap = {
admin: true,
user: false,
};
5. আমরা যদি কোন টাইপ থেকে নির্দিষ্ট কয়েকটা key বেছে নিতে চাই
➡️ তখন Pick<Type, Keys>
ব্যবহার করবো
type User = { name: string; age: number; email: string };
type BasicInfo = Pick<User, "name" | "email">;
const user: BasicInfo = { name: "Hamim", email: "hamim@gmail.com" };
6. আমরা যদি কোন টাইপ থেকে কিছু key বাদ দিতে চাই
➡️ তখন Omit<Type, Keys>
ব্যবহার করবো
type User = { name: string; age: number; email: string };
type NoEmail = Omit<User, "email">;
const user: NoEmail = { name: "Hamim", age: 20 };
7. আমরা যদি Union টাইপ থেকে কিছু নির্দিষ্ট টাইপ বাদ দিতে চাই
➡️ তখন Exclude<Type, Remove>
ব্যবহার করবো
type Status = "loading" | "success" | "error";
type NoError = Exclude<Status, "error">; // "loading" | "success"
8. আমরা যদি শুধু মিল থাকা টাইপ গুলো রাখতে চাই
➡️ তখন Extract<Type, Match>
ব্যবহার করবো
type A = "a" | "b" | "c";
type B = "b" | "c" | "d";
type Common = Extract<A, B>; // "b" | "c"
9. আমরা যদি null এবং undefined বাদ দিতে চাই টাইপ থেকে
➡️ তখন NonNullable<Type>
ব্যবহার করবো
type Value = string | null | undefined;
type CleanValue = NonNullable<Value>; // string
10. আমরা যদি কোনো ফাংশনের parameter গুলোর টাইপ জানতে চাই
➡️ তখন Parameters<Function>
ব্যবহার করবো
function greet(name: string, age: number) {}
type Params = Parameters<typeof greet>; // [string, number]
11. আমরা যদি কোনো ফাংশনের return টাইপ জানতে চাই
➡️ তখন ReturnType<Function>
ব্যবহার করবো
function getAge(): number {
return 25;
}
type Age = ReturnType<typeof getAge>; // number
Last updated on