JS的基本数据类型在ES6到来时增加了Symbol基本类型,而ES6即ES2015发布也已经5年半时间。

但实际的开发中,我并没有使用过Symbol,因为在TS的语言环境下,我似乎更不考虑用它了,因为TS下有个枚举类型的存在。但认真学习调研后,结论是理解错了。

这里就mark下两者的区别,明晰区别,意义,才能更健康合理的使用。

TypeScript中的Enum

首先TS只是中间语言,开发语言,而TS最终还是要compile为JS,因此这个类型本身也只是一种包装。

比如我们定义这样一个枚举

1
2
3
4
enum Config {
CSV,
JSON
}
阅读全文 »

最近在使用GitHub Actions实现自动部署静态网页到VPS时,遇到问题,即同步文件只有文件,内容为空,万脸懵逼,于是开始排查问题原因。

具体问题

执行的命令如下

1
2
3

$ rsync -zvr -e ssh public root@1991421.cn:/var/www/blog

同步结束

阅读全文 »

一直以来很喜欢使用Alfred的Snippet,将常用的文本块录入,同时还支持配置一些参数,平时可以节约输入重复文本的时间。比如之前我们经常进行CR,结束后需要一个简单的总结,为了提升总结效率,我就做了Snippet。

但是Snippet的弊端是Alfred只存在于MacOS,身为Apple全家桶用户表示不爽。因为Apple系统本身就存在文本替换支持,于是我不得不将一部分的文本块放在系统层配置,这样才可以跨Apple设备支持。但两者的同时使用也必会带来使用混乱问题。于是,我思考了两者的协作问题,这里mark下。

Alfred Snippet VS Apple Text Replacement

首先先梳理下两者的不同。

  1. 平台局限性

    • Alfred仅支持Mac,没有iOS版,有一个remote App,但本质只是远程操控了下Mac版App的一些功能,非真正的iOS移植版
    • Apple的文本替换,会利用iCloud同步到各个设备,一经修改,所有设备都可即时使用
  2. 功能局限性

    • Alfred的Snippet本身支持各种变量,另外可以借助workflow,实现更强大的替换,且也可以控制最终光标的位置,总之强大
    • Apple的文本替换就比较简单,仅仅只是字符串之间的替换
    • Mac系统上,文本替换在EN状态下输入不是所有App下都work,比如MacDown,或者Chrome的地址栏,而上述App在中文下Work.对比设备,比如iPhone,iPad则EN还是中文都work。估计是文本替换是存在App适配问题。

统一约定

阅读全文 »

Airdrop算是Apple生态一个重要的体验了,便携的在各个设备之间传输文件,但是呢,离高效还差些,比如总是需要鼠标移动,点击share->airdrop。效率为王的时代,我还是选择自动化这个流程。

当前效果

选择文件或链接,唤起Airdrop进行分享

下载地址:戳这里

阅读全文 »

一直没有系统总结过字面量与构造函数在声明正则中的区别,抽空总结下。

区别

  • 字面量中对于特殊字符都是直接解析,而在构造函数中需要加正斜杠进行转译, 比如\d会被当作字符串\d看待,但比如
  • 字面量前后正斜杠只是为了表示该值为正则,只是分割符,假如在构造函数中写就意味着匹配斜杠
  • 字面量表达式的易读性是高于构造函数

举例子

以下正则匹配等价

阅读全文 »
0%