开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情
本文参加了由公众号@若川视野 发起的每周源码共读活动,点击了解详情一起参与。
本篇是源码共读第33期 | arrify转数组,点击了解本期详情
这是学习arrify的笔记心得
首先介绍一下
arrify是干嘛用的。arrify用于把一个值转换为一个数组,转化规则在readme.md中。
学习知识
1.Symbol.iterator
在index.js中有如下代码,判断是否可迭代
if (typeof value[Symbol.iterator] === 'function') {
return [...value];
}
不了解迭代器与生成器的可参考这篇文章:javascript迭代器与生成器
2.如何测试
在package.json中有如下代码
"scripts": {
"test": "xo && ava && tsd"
}
所以我们执行 npm test时其实执行了三个任务
其中ava表示使用的是ava测试框架
xo
JavaScript/TypeScript linter (ESLint wrapper) with great defaults JavaScript/TypeScript linter(ESLint 包装器)具有很 的 默 认值
ava
Node.js test runner that lets you develop with confidence
tsd
Check TypeScript type definitions 检查 TypeScript 类型定义
在ava测试中我们使用到了is() 和deepEqual()
.is(value, expected, [message]) 断言 value 是否和 expected 相等
.deepEqual(value, expected, [message]) 断言 value 是否和 expected 深度相等
参考文章:package.json命令解析 关于ava测试框架
在github上提交了该笔记,note.md为笔记文件