TypeScript 新特性拾遗
好久没有写博客了,也由于工作变动的原因,好久没有关注 TypeScript 的 Release Note 了, 今天趁着项目空档摸鱼的间隙好好来学习下。 类型谓词 (type predicates) ...
Fighting's Blog
好久没有写博客了,也由于工作变动的原因,好久没有关注 TypeScript 的 Release Note 了, 今天趁着项目空档摸鱼的间隙好好来学习下。 类型谓词 (type predicates) ...
简介 该特性直白来说:若在条件类型中给定的泛型为联合类型,则会将联合类型的每个成员分别执行条件运算。理解起来并不难,官方文档给了一个简单的示例: type ToArray<Type> = ...
vim-surround https://github.com/tpope/vim-surround 写前端代码时非常高频的几个操作: * 标签替换 比如,将 div 替换成 p <div>...
先看两个例子 当 Parent 中的 value 发生更新时,A、B、C 中哪些组件会发生 re-render?为什么? function Parent() { <Provider value=...
背景 为什么函数参数是双变? 这个问题实际上在 TS2.6 之后已经不完全成立了:https://www.typescriptlang.org/docs/handbook/release-notes/...
Micro State Management with React Hooks 的作者是Daishi Kato,在 React 社区属于非常活跃的大牛。我们在项目中使用的 jotai 就出自他。 花了...
代码路径为: src/vs/base/common/event.ts 基础接口 和一般的 event 类工具定义事件为字符串不同,这里 Event 的定义为函数,: interface Event&l...
众所周知的原因,在国内使用 homebrew 是非常慢的,而更坑的是,要给其换源也很麻烦,从网上搜索的帖子来看,不止我一个人浪费几小时还换失败的。 这里记录一个大牛的解决方案: /bin/zsh -c...
最近搞工程化,需要写不少 shell 脚本,零零碎碎看了些文档,对比之前看到就头晕眼花,现在总算可以磕磕绊绊写出一些逻辑了。这里随手记录一些自己碰到的问题及姿势。 What’s the d...
Web Workers 为前端提供了多线程执行代码的可能,在 worker 内做 CPU 密集型任务再合适不过了。 worker 中的代码在隔离的环境执行,无法访问、操作 DOM,避免了资源竞争,与宿...
经常会有需求对一个对象/类的方法做代理调用,比如如下对象: const fns = { say: (msg: string) => msg, sum: (a: number, b: number...
本周参加了一次内部的技术分享,主题是甘特图项目技术改造,将原来基于 DOM 的绘制改为基于 canvas 绘制,其采用 React 描述 canvas 的思想让人眼前一亮,大致架构分为了三层: 1. ...
关于 babel-plugin-macros 的介绍,简单可以总结为一句话:“在代码中显式声明需要在编译时需要做的事情”。 为什么需要“显式”?官方文档有介绍使用 babel plugin 方式面临的...