编程随想
Typescript 类型挑战
type-challenges 是 GitHub 上的一个项目,对于想通过 Typescript 的特性写出符合自己需要的复杂类型的同学是一个非常好的练手机会。 这篇日志里,我将不定时更新自己的解答,...
Typescript 类型收窄
当 typescript 下的变量类型被定义为 any unknown Unions 甚至 Generics 时,我们对变量进行操作前需要知道其具体的类型,这种情况下,类型收窄 (Narrowing ...
Typescript逆变与协变
刚接触Typescript那会儿有总结过不同类型之间相互赋值的情况:https://www.ccc5.cc/2702.html ,直到最近自己翻官方文档才知道有个更通俗的概念:逆变与协变。中文教程参考...
Typescript中如何切掉函数参数表的最后一个参数
实现了个Prepend,将指定类型添加到元组类型的最前面: type Prepend<Tuple extends any[], Addend> = ((_0: Addend, …_1:...
Y组合子推导(ES6版)
网上以“Y组合子”为关键字搜,结果其实挺多的,这里只是以我个人的理解再推一遍。 在日常开发中,Y组合子除了可以实现匿名递归以外好像也没有其他用,不过推导的过程倒是挺有意思,这里记录下。 另外,对相关问...
AC68U上配置Clash透明Proxy记录
家里路由器是华硕AC68U,已经刷了Merlin,但是里面集成的koolshare软件市场的科学Proxy工具实在难用,测速慢、无法自动切换、手动切换一次需要不下30s。Clash的Auto-UrlT...
获取对象key集合的一些姿势
有原始对象: const obj = { a: 1, [Symbol(‘b’)]: 2 } 再加工一下: Object.defineProperty(obj,’c’,{ value: 3, enume...
一个题考察对Promise的掌握情况
近半年面试了很多的人,其中不乏高级前端开发,而对Promise这个现代前端异步基础掌握得实在是惨不忍睹,除了烂大街的考察事件循环中Promise执行顺序的问题,以下这个题也是一个很好的考察点,问,以下...
TypeScript类型兼容
先看代码: let x = { a: 1 }; let y = { a: 1, b: 2 }; x = y; // OK y = x; // Error let xx = (a: number) =&...
记一次anti anti debug
去年在微博上看到某前端大佬提供的一种检测用户是否打开控制台的方式,后面自己也去探索了一种方式,同时也发现在StackOverflow上有关于这个话题的讨论。不过这些方式后面都失效了。 今天偶然打开了一...
一种探测你近期是否访问过指定网站的方式
html的a标签有一个特性,当用户访问过其href指向的链接后,在任意其他网站出现一个a标签,链接也是一样的话,显示的标签内的内容颜色会跟默认的颜色不一样。当然,开发者也可以通过css的伪类选择器指定...
斐波拉契数列计算之从递归到记忆到动态规划的演进
递归版本: function fib(n) { if (n <= 1) return 1; return fib(n – 1) + fib(n – 2); } 这样做的问题在哪呢? 简单粗暴的实...