◆結
前提として、型安全で引いてくるのは限度がある。
例えばあるオブジェクトの”piyo.a”の値をとりたいときは以下の感じ。
const a = {
hoge: "",
piyo: {
a: "text",
b: 100,
},
};
const getValue = (s: string, item: object) =>
s.split(".").reduce<unknown>((p, c) => p?.[[c as keyof typeof p]], item);
const b = getValue("piyo.a", a);
この形を取らざるを得なくなったら設計を見直したほうがいい。何かおかしいことをやろうとすると、こういったおかしいコードを書かされるはめになる。