Skip to content

set

INFO

この関数は互換性のために es-toolkit/compat からのみインポートできます。代替可能なネイティブ JavaScript API が存在するか、まだ十分に最適化されていないためです。

es-toolkit/compat からこの関数をインポートすると、lodash と完全に同じように動作します。

指定されたパスに与えられた値を設定します。パスの一部が存在しない場合は作成されます。

インターフェース

typescript
function set<T extends object>(
  obj: T,
  path: string | number | symbol | Array<string | number | symbol>,
  value: unknown
): T;

パラメータ

  • obj (T): 値を設定するオブジェクト。
  • path (string | number | symbol | Array<string | number | symbol>): 値を設定するプロパティのパス。
  • value (unknown): 設定する値。

戻り値

(T): 修正されたオブジェクトを返します。T を指定しない場合は unknown です。

typescript
import { set } from 'es-toolkit/compat';

// ネストされたオブジェクトに値を設定
const obj = { a: { b: { c: 3 } } };
set(obj, 'a.b.c', 4);
console.log(obj.a.b.c); // 4

// 配列に値を設定
const arr = [1, 2, 3];
set(arr, 1, 4);
console.log(arr[1]); // 4

// 存在しないパスを作成して値を設定
const obj2 = {};
set(obj2, 'a.b.c', 4);
console.log(obj2); // { a: { b: { c: 4 } } }

// インターフェースの使用
interface O {
  a: number;
}
const obj3 = {};
const result = set<O>(obj3, 'a', 1); // result の型 = { a: number }
console.log(result); // { a: 1 }

MIT ライセンスの下で配布されています。