【源码学习】omit.js——剔除对象中的属性
- 本文参加了由公众号@若川视野 发起的每周源码共读活动, 点击了解详情一起参与。
- 这是源码共读的第36期,链接:【若川视野 x 源码共读】第36期 | 可能是历史上最简单的一期 omit.js 剔除对象中的属性 - 掘金 (juejin.cn)。
1、omit.js 介绍
// 安装
npm i --save omit.js
// 使用demo
var omit = require('omit.js');
omit({ name: 'Benjy', age: 18 }, [ 'name' ]); // => { age: 18 } // 遍历剔除
2、查看源码
- 核心代码
function omit(obj, fields) {
var shallowCopy = Object.assign({}, obj);
for (var i = 0; i < fields.length; i += 1) {
var key = fields[i];
delete shallowCopy[key];
}
return shallowCopy;
}
第一个参数为目标对象,第二个参数为需要删除的属性名数组;通过浅拷贝目标数组,然后对浅拷贝后的数组进行遍历剔除,然后返回浅拷贝数组。
- 查看使用的依赖
-
umi-fabric 一个包含 prettier,eslint,stylelint 的配置文件合集,链接
-
np 好用的npm包发布工具 链接
-
assert assert (断言) 模块是Node的内置模块,主要用于断言。
3、拓展
jest
可以使用 jest 替代asset来进行单元测试
// 安装
npm i jest -D
// 生成配置文件
npx jest --init
测试用例
注意点
- jest在ts文件使用
// 安装ts-jest
npm i -D ts-jest
// jest.config.js
{
preset: "ts-jest"
}
// 继续安装@types/jest,是ts对jest的类型支持
npm i -D @type/jest