Blog

了解Tailwind

最近一个开源项目需要做个H5版,决定试试Tailwind,这里mark下我对它的认识和使用后的感受。

Jul 24, 2025

嵌套对象的keyof

需求 interface User { parent: { name: string; }; age: number; name: string; } type Column = { key: keyof User; }; const columns: Column[] = [ { key: 'name' }, { key: 'name1' }, { key:'parent.name' } ]; 解决办法 type Paths<T> = T extends object ? { [K in keyof T]: `${Exclude<K, symbol>}${"" | `.${Paths<T[K]>}`}` }[keyof T] : never type Column = { key: Paths<User>; }; 除了自己写Paths类型外,还可以使用现成的库,比如type-fest中的Path类型。

Jul 22, 2025

入手红米note13 5G,千元以下手机,问题多多,但还要啥自行车

最近家人的手机过于老旧了,决定换新。之前因为她使用的是红米note系列,因此这次还是选择红米note相对新一点的型号,同一品牌的话,系统使用习惯就可以直接延续,不会额外增加学习成本。

Jul 14, 2025

Anker充电宝召回:揽收困难后,我最终选了自行处理,且权益选了换新

之前俩Anker充电宝都属于召回批次,最近收到了短信,说建议自行处理,因此我决定按照建议进行处理。这里mark下流程。

Jul 10, 2025

改变日常使用习惯的黑科技:MagSafe 三大优势

苹果推出 MagSafe ,并不只是个噱头,而是真正改变了我们给 iPhone 充电,以及使用配件的方式。

Jul 4, 2025

AI 服务哪家强,我平时使用那些 AI 工具?

22年底到现在,AI发展已经很成熟了,但身边还有很多朋友不清楚该用哪些AI服务,哪些比较好。 我从GPT开始玩到现在,这里基于我的粗糙经验来分享下吧。

Jun 30, 2025

日本自由行

年假临近过期,所以修几天假去了趟日本。觉得非常不错,这里mark下准备工作和大致的旅程吧。

Jun 29, 2025

NotebookLM 音频播客实测:目前的几个缺点

NotebookLM玩了几个月了,其中音频概览即语音播客功能属于高频使用的功能,这里总结下目前我发现的一些缺点吧。

Jun 27, 2025

Anker充电宝召回:我手中两个都中招了

最近看到群里讨论Anker充电宝召回问题,出于好奇,我按照官网指南查询了一下,没想到手里的两个充电宝都在召回范围内。以前没经历过这个事,因此这里记录一下我的申请召回经历和相关信息。

Jun 26, 2025

日本自由行,我把 iPhone 设置成这样:实用 App & 功能分享

最近去了趟日本,发现一些iPhone上一些设置和App帮了我不小的忙。这里就总结下,兴许出国的你也需要。

Jun 25, 2025