آبجکت/از نسخه
1.38.0set
یک کپی سطحی از شیء ایجاد میکند و مقدار ویژگی مشخصشده را با مقدار جدید جایگزین میکند.
set(object, key, value):Tنحوه عملکرد
این تابع ابتدا با استفاده از object spread syntax یک کپی سطحی ایجاد میکند و سپس مقدار دادهشده را روی کلید مشخصشده در همان کپی قرار میدهد.
Type safety
پارامتر key به keyof T محدود شده و value از T[K] استفاده میکند. بنابراین TypeScript نوع مقدار را به کلید انتخابشده مرتبط میکند.
کپی سطحی
فقط خود شیء در سطح اول کپی میشود. اشیای تو در تو و آرایهها reference اصلی خود را حفظ میکنند.
شیء اصلی
شیء ورودی مستقیماً تغییر نمیکند. عملیات انتساب روی کپی جدید انجام میشود.
پارامترها
objectTالزامیشیئی که باید کپی و بهروزرسانی شود.
keyKالزامیکلید ویژگیای که باید بهروزرسانی شود.
valueT[K]الزامیمقدار جدید ویژگی مشخصشده. نوع آن باید با نوع همان ویژگی سازگار باشد.
مقدار بازگشتی
Tیک کپی سطحی جدید از شیء که ویژگی مشخصشده در آن با مقدار دادهشده تنظیم شده است.
مثالها
01
استفاده پایه
TypeScript
const user = {
name: "Amir",
age: 22,
};
const result = set(user, "age", 25);
// {
// name: "Amir",
// age: 25,
// }02
بهروزرسانی ویژگی رشتهای
TypeScript
const user = {
name: "Amir",
age: 22,
};
set(user, "name", "Ali");
// {
// name: "Ali",
// age: 22,
// }03
بهروزرسانی ویژگی boolean
TypeScript
const settings = {
darkMode: false,
notifications: true,
};
set(settings, "darkMode", true);
// {
// darkMode: true,
// notifications: true,
// }04
مقادیر type-safe
TypeScript
const user = {
name: "Amir",
age: 22,
};
set(user, "age", 25);
// Valid
// set(user, "age", "25");
// TypeScript error05
شیء اصلی تغییر نمیکند
TypeScript
const user = {
name: "Amir",
age: 22,
};
const result = set(user, "age", 25);
console.log(user);
// {
// name: "Amir",
// age: 22,
// }06
کپی سطحی
TypeScript
const user = {
name: "Amir",
profile: {
age: 22,
},
};
const result = set(user, "name", "Ali");
result.profile.age = 25;
console.log(user.profile.age);
// 2507
تنظیم مقدار روی undefined
TypeScript
const data = {
value: 10 as number | undefined,
};
set(data, "value", undefined);
// {
// value: undefined,
// }08
تنظیم مقدار روی null
TypeScript
const data = {
value: 10 as number | null,
};
set(data, "value", null);
// {
// value: null,
// }ساخته شده با@cyref/js·مستندات رسمی