Pencillll 最近的时间轴更新
Pencillll
ONLINE

Pencillll

V2EX 第 639264 号会员,加入于 2023-07-19 18:32:47 +08:00
今日活跃度排名 24894
Pencillll 最近回复了
23 小时 37 分钟前
回复了 mastergo 创建的主题 分享发现 AI 创作音乐进入了新阶段
目前听过最强的感觉还是老头环,可惜没公开 https://b23.tv/BrXkn97 从 07:43 开始
点击打开的文件选择器不能同时支持文件和文件夹,只能分成两个按钮,拖拽的话是可以同时支持的
没什么 low 不 low 的,主要是个人喜好,不过非要说的话也是能找到规律的,如果是把里面的文件作为一个整体来描述就不加 s ,如果作为一个集合来描述就加 s ,比如
- cache
- dist
- app
- routes
- utils
3 天前
回复了 xinbaoCode 创建的主题 Next.js [NextJs] 如何构建复杂的全栈项目
prisma 已经是 dao 了吧,主要写 service 就行
9 天前
回复了 waiaan 创建的主题 JavaScript 这段 if...else 有优雅的写法吗?
好像楼上都没有提到这种写法啊,感觉这样更清晰一些:

const sortTypes = {
1: { prop: "thisYearIncome", order: "descending" },
2: { prop: "thisYearIncome", order: "ascending" },
3: { prop: "lastYearIncome", order: "descending" },
4: { prop: "lastYearIncome", order: "ascending" },
5: { prop: "rate", order: "descending" },
6: { prop: "rate", order: "ascending" },
}

function getSortType({ order, prop }) {
for (const [sortType, condition] of Object.entries(sortTypes)) {
if (condition.order === order && condition.prop === prop) {
return sortType
}
}

return 0
}
我平时也会看英文视频,想问一下,有些句子反复听都听不出来,这时候怎么办呢
11 天前
回复了 hahaFck 创建的主题 程序员 关于 typescript 里面的 never 类型求教!
我根据官方的原话猜测一下 TS 的做法:TS 先假定两个函数的参数数量一致,在这种前提下可以把数组 never[] 当成和元组 [string] 长度一样的元组,也就是 [never],再尝试赋值,而 [never] 是可以赋值给 [string] 的,所以前面的赋值也就成立了
11 天前
回复了 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
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5404 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 09:36 · PVG 17:36 · LAX 02:36 · JFK 05:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.