⭐️ 又是一次“切磋”

2021-05-21

昨晚三点才睡觉,第二天去公司感觉浑身没劲。这时候你可能会说,来瓶“什么动”,哈哈哈哈哈 😂 别说是人没劲了,要改进的项目的需求也是糊里糊涂的。需要增加一处新的列表,但是却并不知道这里面需要什么字段,展示什么信息。于是这个布局修改就拖泥带水的改了许久,也不知道最后到底符不符合要求。

期间,@Innei 又来骚扰我了,他看我的日记给我“找了找茬”。说我日记《WebPack / CSS Module 配置》 里面的 classnames 用法很奇特(true && styles.active),都知道 && 不成立的情况下,这里返回的应该是 undefined,但他说 classnames 这个库的处理有问题。

你这样写要被人笑的

他说应该写成 true ??,然后还说 classnames 这个哭有问题,还建议我换成 clsx。?? 我一直没有直接在 JS 里面用,怕兼容性不太好。而他非常自信的(拍拍胸脯)说,Stage 3 的东西随便用,反正肯定能过提案,迟早的事。有 Babel 在,不怕!

我自己也写了个只有 1 行的 classnames,但只支持传数组。这代码也是非常干净直接:

function classnames(classnames: string[]){
  return classnames.filter(item => item).join(" ");
}

这段代码确实可以过滤掉 undefined null false,但是 true 会当作字符串一并输出,还是有点问题的。而他也放出了自己写的类似代码,他的也一样有这个问题。他想了个招数,就是使用 Boolean 强制转换类型,之后在 filter 里面过滤,就能解决掉 true 的问题了。

Boolean(val: any): boolean

他还提到了「位操作」,也是编程里面较为常用的一种算法?他说拿这个做权限校验非常合适。我顿时想到了 Linux 的 777 755 这个权限写法,我近期老想做的日记权限查看功能,也一直一拖再拖没搞出来,不知道这个东西会不会对我的开发有着更好的帮助。

睡前更新了 Fantasy 主题的样式,用 AI 做了个小图标,替代原有的 PNG 图片为 SVG,并支持了大页码和溢出换行的效果。

小雨 一般
概览页 时间轴
奇趣音乐盒 技术源于 Kico Player
Emmm,这里是歌词君