<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[narukeu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/narukeu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; narukeu]]></copyright><item><title><![CDATA[聊下 rewriteRelativeImportExtensions 这个 TypeScript 配置项]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/156106249</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/156106249</guid><author>narukeu</author><pubDate>Sat, 20 Dec 2025 10:07:51 +0800</pubDate><description><![CDATA[这个配置项是 TypeScript 5.7+ 版本中存在的，距离 5.7 发布也有一年多了，不过感觉国内的技术文章里面提及这一块的不算太多。结合我之前写前端的时候对 ESM 模块系统有一些误会，所以我觉得可以从 ESM 模块系统开始，一直科普到 TypeScript 5.7 的这个配置项。]]></description><category></category></item><item><title><![CDATA[从 Anthropic 收购 Bun 谈起，聊聊 Bun 的败局]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/155578948</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/155578948</guid><author>narukeu</author><pubDate>Thu, 04 Dec 2025 20:55:06 +0800</pubDate><description><![CDATA[Bun 的败局，不只是某个项目经营层面的成败，而是给所有被“新一代XXX”这些词语打动过的人提了个醒：
基础设施的价值，最终是由可靠性、兼容性、可预期性和社区治理结构决定的，而不是几张漂亮的跑分（A 10x faster than B）、自媒体的“天哪，Node.js 已经沦为第二！”“我已经把我的前端工具链都换成 Bun 了！”、哪家独角兽公司的背书。]]></description><category></category></item><item><title><![CDATA[原生工具浪潮下 Babel 的定位与未来演进]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/155259540</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/155259540</guid><author>narukeu</author><pubDate>Wed, 26 Nov 2025 08:51:44 +0800</pubDate><description><![CDATA[Babel 迎来了它自己的转折点。它的原型是人类因为自己的傲慢而被迫分散的象征。但 JavaScript 世界里的 Babel，它却在相当长的一段时间里，抹平了不同环境、不同技术、不同年代的差异，让开发者能够专注于编写代码，而不是担心兼容性问题。如今原生工具的普及，Babel 不会停工，而是在新的时代里，找到自己的定位。]]></description><category></category></item><item><title><![CDATA[聊下前端 —— 关于我的职业经历和前端是否会被“取代”的碎碎念]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/155207134</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/155207134</guid><author>narukeu</author><pubDate>Mon, 24 Nov 2025 22:36:09 +0800</pubDate><description><![CDATA[我想从我个人的成长轨迹出发，聊聊什么是真正的“现代前端”，以及为什么它远比外人想象的要复杂和厚重。]]></description><category></category></item><item><title><![CDATA[TypeScript：判断两个 Date 对象是否为同一天]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/146514263</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/146514263</guid><author>narukeu</author><pubDate>Tue, 25 Mar 2025 22:08:38 +0800</pubDate><description><![CDATA[【代码】TypeScript：判断两个 Date 对象是否为同一天。]]></description><category></category></item><item><title><![CDATA[TypeScript：根据指定的键值（默认为id）从数组A中筛选出存在于数组B中的元素，支持自定义键名，适用于多种数据结构的过滤场景。]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/146511698</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/146511698</guid><author>narukeu</author><pubDate>Tue, 25 Mar 2025 20:14:17 +0800</pubDate><description><![CDATA[【代码】TypeScript：根据指定的键值（默认为id）从数组A中筛选出存在于数组B中的元素，支持自定义键名，适用于多种数据结构的过滤场景。]]></description><category></category></item><item><title><![CDATA[TypeScript 生成指定范围内的随机数，并支持控制小数点后的位数]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/146398639</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/146398639</guid><author>narukeu</author><pubDate>Thu, 20 Mar 2025 15:33:24 +0800</pubDate><description><![CDATA[【代码】TypeScript 生成指定范围内的随机数，并支持控制小数点后的位数。]]></description><category></category></item><item><title><![CDATA[自用基于 TypeScript 的 WebSocket 客户端封装]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/146382867</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/146382867</guid><author>narukeu</author><pubDate>Wed, 19 Mar 2025 22:43:49 +0800</pubDate><description><![CDATA[【代码】自用基于 TypeScript 的 WebSocket 客户端封装。]]></description><category></category></item><item><title><![CDATA[通过 JS 根据屏幕宽度自动设置 1rem 的大小]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/145772858</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/145772858</guid><author>narukeu</author><pubDate>Fri, 21 Feb 2025 11:21:12 +0800</pubDate><description><![CDATA[本示例代码以屏幕宽度 1920 为基础，根据屏幕缩放比例自动调整 1rem 的大小。]]></description><category></category></item><item><title><![CDATA[使用 Node.js 读取当前 Linux 发行版信息]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/145657464</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/145657464</guid><author>narukeu</author><pubDate>Sat, 15 Feb 2025 21:48:16 +0800</pubDate><description><![CDATA[【代码】使用 Node.js 读取当前 Linux 发行版信息。]]></description><category></category></item><item><title><![CDATA[自用的让 AI 生成符合要求的JSDoc 注释的提示词（prompt）]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/145648973</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/145648973</guid><author>narukeu</author><pubDate>Sat, 15 Feb 2025 12:19:51 +0800</pubDate><description><![CDATA[【代码】自用的让 AI 生成符合要求的JSDoc 注释的提示词（prompt）]]></description><category></category></item><item><title><![CDATA[对于 NestJS + TypeORM 查询构造器分页功能的简单二次封装]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/145083213</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/145083213</guid><author>narukeu</author><pubDate>Sat, 11 Jan 2025 21:51:18 +0800</pubDate><description><![CDATA[NestJS 作为 Node.js 领域备受欢迎的框架，其与 TypeORM 的结合为开发者提供了强大的 ORM 能力，简化了数据库操作。然而，在处理分页查询时，直接在每个服务方法中重复编写分页逻辑既不高效也容易出错。为此，我们可以通过创建一个通用的分页处理函数，将分页逻辑从业务逻辑中抽离出来，达到代码复用和模块化的目的。]]></description><category></category></item><item><title><![CDATA[对于 TypeORM 精准&模糊查询的简单二次封装]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/145064703</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/145064703</guid><author>narukeu</author><pubDate>Fri, 10 Jan 2025 20:09:50 +0800</pubDate><description><![CDATA[笔者目前在做 `NestJS + TyoeORM` 项目，需要对查询逻辑进行二次封装，以适应多变的查询需求。本文将通过一个具体的示例——`addQueryFilterConditions` 函数，探讨如何在 TypeORM 中实现精确匹配和模糊查询的灵活结合，从而提升查询的灵活性和可维护性。]]></description><category></category></item><item><title><![CDATA[JavaScript：在树形的对象数组中，给定一个键（key）及其对应的值，寻找并返回该对象下另一个指定键的值。]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/145045252</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/145045252</guid><author>narukeu</author><pubDate>Fri, 10 Jan 2025 00:26:51 +0800</pubDate><description><![CDATA[【代码】JavaScript：在树形的对象数组中，给定一个键（key）及其对应的值，寻找并返回该对象下另一个指定键的值。]]></description><category></category></item><item><title><![CDATA[JavaScript 在对数组进行 map 或者 forEach 的时候有办法知道当前遍历的元素是最后一个元素吗？]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/144094787</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/144094787</guid><author>narukeu</author><pubDate>Wed, 27 Nov 2024 21:19:13 +0800</pubDate><description><![CDATA[方法本身并没有提供直接的方式来知道当前遍历的元素是否是数组的最后一个元素。不过，可以通过数组的长度来判断当前元素是否是最后一个元素。就是用来判断当前元素是否是最后一个元素。在 JavaScript 中，]]></description><category></category></item><item><title><![CDATA[JavaScript：遍历一个对象数组，获取每个对象中 mainKeyId 对应的值，并以这个值作为新属性的键名，给该对象添加一个新属性。]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/144069162</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/144069162</guid><author>narukeu</author><pubDate>Tue, 26 Nov 2024 21:54:19 +0800</pubDate><description><![CDATA[假设我们有一个对象数组，每个对象包含一个mainKeyId字段，以mainKeyId的值作为新的键名，并给它添加一个新的属性。]]></description><category></category></item><item><title><![CDATA[暂时性死区是什么？]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/141439811</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/141439811</guid><author>narukeu</author><pubDate>Fri, 23 Aug 2024 13:00:00 +0800</pubDate><description><![CDATA[具体来说，从作用域开始到变量声明的这段时间，变量处于暂时性死区。只有在变量实际被声明并初始化之后，才能正常访问它。声明变量时，这些变量在声明之前无法访问，即便是声明了该变量，但只要在声明之前尝试访问它，就会抛出。暂时性死区（Temporal Dead Zone，简称 TDZ）是 JavaScript 中。暂时性死区的引入是为了避免在变量声明之前访问它们，确保代码更加安全和可预测。这段时间就称为暂时性死区。变量声明的一种行为。会触发暂时性死区，导致抛出。]]></description><category></category></item><item><title><![CDATA[如何通过 JavaScript 实现点击按钮下载]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/141435012</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/141435012</guid><author>narukeu</author><pubDate>Thu, 22 Aug 2024 18:29:18 +0800</pubDate><description><![CDATA[在现代 Web 开发中，有时我们需要提供用户点击按钮直接下载文件的功能，而不是简单地让浏览器直接访问链接。这种方式更加直观且用户体验更好，因为它避免了用户在新标签页或当前页面中打开文件的麻烦。]]></description><category></category></item><item><title><![CDATA[算法题：使用 JavaScript 将罗马数字转换成阿拉伯数字]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/140806653</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/140806653</guid><author>narukeu</author><pubDate>Tue, 30 Jul 2024 21:00:22 +0800</pubDate><description><![CDATA[上一篇我们讲到了将阿拉伯数字转换成罗马数字，这一篇反其道行之。]]></description><category></category></item><item><title><![CDATA[算法题：使用 JavaScript 将阿拉伯数字转为罗马数字]]></title><link>https://blog.youkuaiyun.com/narukeu/article/details/140806381</link><guid>https://blog.youkuaiyun.com/narukeu/article/details/140806381</guid><author>narukeu</author><pubDate>Tue, 30 Jul 2024 20:46:23 +0800</pubDate><description><![CDATA[数组包含罗马数字符号及其对应的整数值，从大到小排列，以便于按顺序处理。]]></description><category></category></item></channel></rss>