《TypeScript高级编程》4.1 标准装饰器(TS 5.x)
本节讲 TypeScript 5.x 原生支持的标准(Stage 3)装饰器:说清它与旧版 experimentalDecorators 的语义差异,逐个拆解类、方法、访问器、字段的签名与执行顺序,重点讲 addInitializer 初始化钩子。读完你能用标准语法写不依赖第三方库的包装、注册与校验逻辑,看懂 useDefineForClassFields 等开关如何改变装饰器行为。
tag
本节讲 TypeScript 5.x 原生支持的标准(Stage 3)装饰器:说清它与旧版 experimentalDecorators 的语义差异,逐个拆解类、方法、访问器、字段的签名与执行顺序,重点讲 addInitializer 初始化钩子。读完你能用标准语法写不依赖第三方库的包装、注册与校验逻辑,看懂 useDefineForClassFields 等开关如何改变装饰器行为。
装饰器本质是函数到函数的高阶函数,@deco 只是 f = deco(f) 的语法糖。本节从最朴素的例子讲起,强调必须用 functools.wraps 保留元信息;再讲带参数的装饰器、类装饰器与实例方法装饰器的差异、缓存装饰器的实现思路与可哈希约束、singledispatch 的类型分派,以及多个装饰器的执行顺序,最后落到鉴权、重试、计时、注册表等真实工程场景。
Python 装饰器与上下文管理器完全指南:从基础语法到类装饰器、带参数装饰器、装饰器链;上下文管理器的协议实现与 contextlib 工具;以及 LRU 缓存、重试机制、性能计时等 6 个企业级装饰器实战。