1. Decorators 元数据需求与装饰器标准本身应如何区分,避免继续依赖已废弃的实验语义
Decorators 元数据需求与装饰器标准本身应如何区分?如何避免继续依赖已废弃的实验语义?
- TC39 Decorators 标准与 legacy experimentalDecorators 的语义差异
- 元数据(metadata)需求与装饰器语法解耦
- 从实验语义迁移到标准语义的路径
TC39 标准 Decorators 采用"函数接收 (value, context)"签名、只包装不破坏语义的封装模型,与 TypeScript 旧版 experimentalDecorators 的 (target, key, descriptor) 签名及"声明合并式"行为不兼容;标准中元数据(metadata)作为独立提案演进,未随装饰器定稿——因此"要元数据"不能作为继续使用实验语义的理由。正确做法:区分"装饰器语法"与"元数据需求"两个问题——语法上按 Stage 3 标准写法组织代码(回调式、可参与类型检查),元数据需求用显式注册表或独立元数据提案实现;迁移路径上逐步用编译器插件(如 swc/tsc 的 decorators 选项切换)双编译对比验证行为差异,最后移除实验标志与 legacy 类型声明。
考察对装饰器标准演进的准确理解:标准语义与实验语义不兼容、元数据是独立提案,答案需体现"语法标准化、元数据解耦、迁移验证"的分层策略。