
获得徽章 0
- 活动最后一天,介绍最近学ts的一个repo。[type-challenges](
github.com) 这个仓库会让你实现一些比较复杂的ts-utils,让你在实践练习中学会ts的一些比较灵活的实现。
像我这种初学者,完成easy已经可以应对工作中绝大部分的场景了。
图为实现 Array Last 的实例
@冴羽 @潘小安展开赞过11 - 最近有一个需求是表单的可编辑状态,大概是这样,同一个表单会有不同的阶段,总共十几个阶段。每一个阶段对应的可编辑状态与可编辑人员都不一样,比如: 在 `预签署-待确认` 阶段中只有创始人可以编辑,可以编辑的字段有 基金团队、基金主体名称等。
在`预签署-财务审核中` 的阶段中,可以编辑的角色变为 财务 + 法务,可以编辑的字段有基金主体名称,高级财务审批人员等。
如果代码里一直用 if-else 等条件判断,会显得很繁琐,十几个阶段 对应几十个字段。
所以可以采用“表驱动法”,讲得最通俗就是一个Map表,大概的结构可以是这样的:
这样后面如果增加一个字段或者改变编辑逻辑,只需要修改map中对应的阶段数据。
@潘小安 @冴羽展开赞过23 - 目前前端monorepo管理方案基本是 yarn + learn 和 pnpm, pnpm 简单方便一些,内置了workspaces,但是缺少版本控制,所以需要搭配一些外部的程序要处理版本控制。比较好的有 changesets, 搭配github action可以做到自动升级对应版本并发npm包。
demo:github.com
@冴羽 @潘小安展开赞过评论1 - pnpm 安装依赖的时候不会像 npm打平在node_modules中,所以不会出现幽灵依赖的情况,反过来说,有可能以前代码写的不规范,所以改成pnpm之后会有一些报错的情况。
举个例子,用 commitlint等来约束git commit message 规范,以前都是直接安装 @commitlint/cli, @commitlint/config-conventional, cz-conventional-changelog 然后package.script.commit = 'cz'。
通过 nm run commit 来触发 cz 的交互式创建commit信息,这在npm模式下一直没有问题,因为cz-conventional-changelog内包含了 commitizent(cz)。
但是在 pnpm 下,因为我们没显示安装 cz,所以会报 cz command not found的错误.
@冴羽 @潘小安展开2点赞 - 发现一个很有意思的暗黑模式实现效果,大概的效果是这样的,点了暗黑模式之后,整个屏幕都黑了,只开了一盏小灯。
实现的原理大概是body.background: #000,然后再加一个背景图小灯来展示展示鼠标下的内容
我的掘金不知道为什么发不了图片,有兴趣的可以点一下链接看,实用性不强但很有创意github.com
tonsky.me
PS: 移动端体验一般
@冴羽 @潘小安展开赞过评论2 - JS浮点数精度问题是因为采用IEEE754标准,计算的时候会把十进制转换为二进制来处理。
0.1 -> 0.0001100110011001...(无限)
0.2 -> 0.0011001100110011...(无限)
0.1 + 0.2 -> 0.0100110011001100110011001100110011001100110011001100(IEEE 754)
再把二进制转为十进制就变成了: 0.30000000000000004
@潘小安 @冴羽github.com
展开赞过11