【源码共读】第33期 | arrify转数组

70 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 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为笔记文件