于一的博客
搜索文章
首页
分类
文章
前端开发
情绪
关于我
心路
= 768 && isOpen) { isOpen = false; setTimeout(() => enableScroll(document.body), 200); }" >
enableScroll(document.body), 200);" x-transition:enter="transition ease duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="transition ease duration-300" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" style=" position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); z-index: 1001; overscroll-behavior: none; " >
enableScroll(document.body), 200)" >
首页
分类
文章
前端开发
情绪
关于我
心路
全部
默认分类 (182)
前端开发 (184)
HTML+CSS (23)
JavaScript (15)
ES6 (19)
TypeScript (28)
Canvas 2D (21)
图表+ECharts (7)
WebSocket+MQTT (7)
阶段1收官 (7)
Vue3 (14)
Canvas × Vue (7)
阶段2收官 (7)
Three.js (28)
情绪 (0)
【TS】day28-boss-publish
TypeScript 第四周 BOSS 战 — typed-utils 发布准备 + 第 1 个月毕业总结 三周前你手写了 15+ 个工具类型(第 2 周 BOSS 战),本周给它们装上了生产级配置:严格 tsconfig(Day 22)、双格式模块产物(Day 23)、声明文件(Day 24)、类
作者:mario
发布时间:2026-09-01
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day27-toolchain
TypeScript 工程工具链 — ESLint / Prettier / Husky 规范三件套落地 一个团队里,A 用单引号、B 用双引号;有人写 any 一路绿灯、有人忘了 await;Code Review 里一半时间在吵格式。今天的工具链三件套终结这一切:typescript-eslin
作者:mario
发布时间:2026-09-01
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day26-type-testing
TypeScript 类型测试 — tsd 与 expectTypeOf,类型也需要测试 你的类型是"产品"。typed-utils 这个库卖的就是类型——如果一次重构让 Flatten<T> 的返回从 T[] 悄悄变成 readonly T[],几十个下游项目的代码可能突然报错,而没有任何运行时测
作者:mario
发布时间:2026-09-01
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day25-decorators-metadata
TypeScript 装饰器与元数据 — 给类织入横切能力,一次讲透 总计划第 19 周的必修内容今天补上。想象你要给 20 个服务类的方法都加"调用日志"——复制粘贴 20 遍?日志、权限、缓存、重试、性能打点……这些横切关注点(cross-cutting concerns)散落在业务代码里就是灾
作者:mario
发布时间:2026-09-01
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day24-declaration-files
TypeScript 声明文件 — .d.ts 的编写与发布,一次讲透 TypeScript 再强大,也管不到"别人写的 JS"。当项目依赖一个没有类型的旧 JS 库(或公司内部的遗留脚本),你的编辑器瞬间退化成记事本——全是 any,红线全灭。今天学的 .d.ts 声明文件,就是你替外部 JS 世
作者:mario
发布时间:2026-09-01
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day23-modules
TypeScript 模块系统 — ESM/CJS 互作的坑,一次讲透 今天解决一个"新手闻风丧胆、老手也常翻车"的领域:模块互操作。Cannot use import statement outside a module、ERR_UNKNOWN_FILE_EXTENSION、xxx only re
作者:mario
发布时间:2026-09-01
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day22-tsconfig
TypeScript tsconfig 深度配置 — 编译器的驾驶舱,一次讲透 写了三周类型代码,你一直在和"编译器"打交道——但今天才正式坐进驾驶舱。tsconfig.json 里的每个开关,都在决定编译器以多严格的眼光审视你的代码。今天逐项拆解 strict 全家桶(8 个开关,每个配"关掉会漏
作者:mario
发布时间:2026-09-01
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day21-boss-medium-sprint
TypeScript 第三周 BOSS 战 — medium 冲刺,一周武功的总验收 前六天你分别练了元组(Day 16)、递归(Day 17)、字符串(Day 18)、对象(Day 19)四大套路,还补了协变逆变理论(Day 20)。今天没有新知识——只有考场。10 道 medium 精选题(含
作者:mario
发布时间:2026-08-31
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day20-variance
TypeScript 协变与逆变 — 类型系统的方向感,一次讲透 连做五天题,今天换口味:理论课。它回答一个反直觉的问题——为什么"接收 Animal 的函数"能赋给"接收 Dog 的函数"变量,反过来却不行?这就是协变与逆变:类型兼容不只是"结构像不像",还有"方向对不对"。这是 TS 中高级面试
作者:mario
发布时间:2026-08-31
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day19-object-gymnastics
TypeScript 对象体操 — 链式累积与嵌套路径,映射类型的极限操作 前三天分别练了元组、递归、字符串,今天回到你最熟悉的形状:对象。但视角完全不同——Chainable Options 教你"链式累积"(交叉类型的递归妙用),Flip 展示 as 重映射的"值→键"极限,DeepReadon
作者:mario
发布时间:2026-08-31
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day18-string-gymnastics
TypeScript 字符串体操 — 模板字面量与 infer 的组合,类型层的正则引擎 昨天的递归是"引擎",今天给它配上"赛道":字符串。核心认知一句话——字符串 ≈ 可以啃的元组:元组用 [infer F, ...infer R] 拆头尾,字符串用 `${infer F}${infer R}`
作者:mario
发布时间:2026-08-31
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day17-recursive-gymnastics
TypeScript 递归体操 — 类型的自我调用,从 Includes 到 Promise.all 昨天的元组题里,Last2 的"歪解"已经出现过递归的影子。今天把它扶正:递归条件类型是类型体操从"入门"到"进阶"的分水岭——打平、搜索、全排列、深遍历,全部靠它。主菜是两道 medium:Inc
作者:mario
发布时间:2026-08-31
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day16-tuple-gymnastics
TypeScript 元组体操 — 变长元组与推断位置,类型的数组操作大全 昨天立好了规矩(三板斧 + 判题基建),今天开始第一项专项训练:元组。核心新知识只有两个——变长元组(Variadic Tuple)和推断位置(infer 在展开位置)——却能让元组拥有数组的全部操作:取头、取尾、拼接、插入
作者:mario
发布时间:2026-08-31
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day15-type-gymnastics-intro
TypeScript 类型体操入门 — 训练营开营日:规则、方法与第一场热身赛 第 2 周 BOSS 战你手写了 15+ 个工具类型,信心正满。今天正式进入 type-challenges——全球 4 万+ star 的类型题库,TypeScript 面试的"力扣"。今天不追题量:把判题机制搞懂、把
作者:mario
发布时间:2026-08-31
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day14-boss-battle-typed-utils-datahub
TypeScript 第二周 BOSS 战 — 手写 typed-utils 工具类型库 + 泛型 dataHub 重构 六天积攒的弹药今天全部上膛。战役 A:手写 typed-utils 工具类型库——13+ 个自定义工具类型,每个都有验证用例;战役 B:用泛型重构第 1 周的 dataHub——
作者:mario
发布时间:2026-08-28
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day13-mapped-types
TypeScript 映射类型与模板字面量类型 — 类型的遍历与字符串运算,一次讲透 昨天的条件类型解决了"类型层面的 if/else",今天的映射类型解决"类型层面的 for 循环"——[K in keyof T] 一个语法遍历对象的所有键,批量生成新字段。再加上模板字面量类型<
作者:mario
发布时间:2026-08-28
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day12-conditional-types-and-infer
TypeScript 条件类型与 infer — 类型层面的 if/else 与正则捕获,一次讲透 昨天你把 17 个官方工具类型用了一遍,心里一定有个疑问:Exclude<T, U> 凭什么能从联合里"删人"?ReturnType<T> 凭什么能"看穿"函数的返回值?答案是两个今天要学的东西:条件
作者:mario
发布时间:2026-08-28
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day11-utility-types
TypeScript 内置工具类型 — 官方预制件全家桶,用一遍就回不去了 前三天你学会了造类型工厂(泛型、约束、泛型类)。今天参观官方预制件仓库:Partial、Pick、Omit、Record、Exclude、ReturnType……17 个工具类型,每一个都是"泛型 + 约束 + 类型运算"的
作者:mario
发布时间:2026-08-28
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day10-generic-interfaces-classes
TypeScript 泛型接口与泛型类 — 类型工厂的工程化形态 函数层面的泛型你已经会了。今天把 <T> 装进 interface 和 class——这是泛型从"工具函数"升级为"架构模式"的一天:Page<T> 统一所有分页接口、Repository<T> 一套增删改查服务全部实体、Result
作者:mario
发布时间:2026-08-28
分类:
默认分类
,
TypeScript
标签:
#
前端开发
【TS】day09-generic-constraints
TypeScript 泛型约束 extends — 给类型参数立规矩 昨天发现:T 是"未知类型",连 value.length 都不许访问——泛型的安全性以"能力丧失"为代价。今天学约束(Constraint):用 extends 给 T 划一个范围,换取成员访问权。其中 K extends ke
作者:mario
发布时间:2026-08-28
分类:
默认分类
,
TypeScript
标签:
#
前端开发
共 28 篇文章
1
2
页