- 本文参加了由公众号@若川视野 发起的每周源码共读活动, 点击了解详情一起参与。
- 本期的源码仓库在此:arrify
arrify的功能就是把一个值转换为一个数组- 以下就是我的
收获啦, 希望对你也有帮助哦
工程结构
依赖
- xo: 代码格式校验
- 预设了一些 eslint 规则, 用于格式化 js/ts 文件.
- 作者也提供了对应的插件 vscode-linter-xo, 方便和 IDE 集成.
- ava: 单元测试
- 利用 Node.js 异步的特性使得 IO 可以并行, 从而让测试文件在不同的进程里并行运行.
- tsd: ts 类型测试
expectError: 期望类型出错expectAssignable: 期望类型是兼容的expectType: 期望两个类型是相等的
CI
-
配置文件说明(我在这里添加了
注释)
- 在这里找到你想使用的
Actions
代码
ts
Iterable<T>: 迭代器类型
const c = new Set<string>;
type C<T> = T extends Iterable<infer P> ? P :never;
type d = C<typeof c> // string
js
Symbol.iterator: 检查对象的Symbol.iterator属性,来判断对象是否可迭代
if (typeof value[Symbol.iterator] === 'function') {
return [...value];
}
未解决问题
-
.gitattributes的实际用途,有小伙伴有用到过这个吗?