之前用过涉及到 object path 的一些 package ,但是发现这些 packages 的类型支持不是特别完善,比如 lodash, react-hook-form, formik, mongodb client 等。
这些 packages ,或多或少存在的几个问题是:
因为我在写 react-happy-form 这个开源项目的时候,对 object path 这块需求比较高,所以就自己单独写了 object-standard-path 这个 package:
使用起来也非常简单,没有任何依赖,1k 不到的包体积,如果有需要的话,大家可以试试 :)
Repo 地址: https://github.com/react-earth/object-standard-path
可以的话,可以小点个 star ,每个 star 都是我以后持续更新的动力,感谢!🌟
import { Path, PathValue, pathGet, pathSet } from 'object-standard-path';
type Test = {
value: string;
array: {
value: string;
}[];
};
type TestPath = Path<Test>;
// result: "value" | "array" | `array[${number}]` | `array[${number}].value`
type TestPathValue = PathValue<Test, 'array[0]'>;
// result: { value: string }
const object = {
array: [
{
value: 1,
},
],
};
const result = pathGet(object, 'array[0].value');
// result: 1
pathSet(object, 'array[0].value', 2);
// result: { array: [{ value: 2 }] }
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.