Pencillll 最近的时间轴更新
Pencillll
ONLINE

Pencillll

V2EX 第 639264 号会员,加入于 2023-07-19 18:32:47 +08:00
今日活跃度排名 7109
Pencillll 最近回复了
8 分钟前
回复了 hahaFck 创建的主题 程序员 关于 typescript 里面的 never 类型求教!
我根据官方的原话猜测一下 TS 的做法:TS 先假定两个函数的参数数量一致,在这种前提下可以把数组 never[] 当成和元组 [string] 长度一样的元组,也就是 [never],再尝试赋值,而 [never] 是可以赋值给 [string] 的,所以前面的赋值也就成立了
20 分钟前
回复了 hahaFck 创建的主题 程序员 关于 typescript 里面的 never 类型求教!
这是 TS 里的一个不合理设计

函数的参数是逆变的,所以 (x: string) => string 可以赋值给 (...args: never[]) => infer Return 的原因是 never[] 可以赋值给 [string],而 never[] 可以赋值给 [string] 的原因是……就是这么设计的

其实在正常情况下 never[] 是不可以赋值给 [string] 的,但 TS 对于函数里的 ...arg 这种语法做了某些处理导致这种赋值成立

官方的原话是(第二段): https://github.com/microsoft/TypeScript/issues/48840#issuecomment-1270671527
SO 有个同样的问题: https://stackoverflow.com/q/78316282
楼上是对的,我再补充一下,把 "xxx" === "xxx" 替换为 true 是通过静态分析代码完成的,所以一般只能处理简单的表达式,像 2 这种比较复杂的就不行了,["xxx"].indexOf("xxx") 并不能确定为 true ,因为 Array.prototype.indexOf() 有可能在某个地方被覆写,实现了不一样的逻辑

不过 terser 有个 unsafe 选项,开启之后可以在忽略 edge case 的前提下处理某些复杂表达式,不确定包不包括 indexOf ,但可以试一试
这样写就行了:

declare function wrap<T extends any[], R>(fn: (...args: T) => R): (...args: T) => R | undefined

为什么 op 的定义不行,我的理解是在用 Parameters<T>和 ReturnType<T>提取函数里的类型时,会解除函数的上下文,所以函数的泛型参数也就丢失掉了

参考: https://github.com/Microsoft/TypeScript/pull/30215
10 天前
回复了 frankli0324 创建的主题 GitHub [吐槽] vscode 的 issues 是微软的 oncall 吗?
对话成这样不是你的问题吗……首先你的问题描述就过于粗糙,步骤不详细且前言不搭后语,说是禁用了所有插件但又没提供插件信息令人生疑,其次对方没理解的时候你没有进一步解释而是把前面的谜语加粗重复了一遍,后面又说了一大通指责的话,这种居高临下的态度被拒绝再正常不过了
用 arbitrary variants 就行了,在控件外面的父元素写个 class ,比如:
[&_.xxx]:font-sans
[&>div>span]:font-sans
[&_*]:!font-sans

参考: https://tailwindcss.com/docs/hover-focus-and-other-states#using-arbitrary-variants
17 天前
回复了 zhufpy 创建的主题 宠物 新领养个小猫,有什么要准备的
准备一个猫包/航空箱,用来带猫猫回家和带去医院
家里弄个猫屋或者笼子之类的,总会用上的,比如打扫卫生或者家里来客人的时候
30 天前
回复了 EricSTG 创建的主题 Brave Brave 的历史问题得到改进了吗
@EricSTG 不清楚啊,我用的手机版
31 天前
回复了 EricSTG 创建的主题 Brave Brave 的历史问题得到改进了吗
我当主力用了一年了吧,没遇到过里面说的问题,不过我也没用钱包,纯当浏览器用的
找份全年无休的工作吧,让你 high 个不停
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3130 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 12:52 · PVG 20:52 · LAX 05:52 · JFK 08:52
Developed with CodeLauncher
♥ Do have faith in what you're doing.