1. noPropertyAccessFromIndexSignature 在 Monorepo 与项目引用的协作
noPropertyAccessFromIndexSignature 在 Monorepo 与项目引用场景中如何协作?
- 该选项对索引签名属性访问的约束(点访问 vs 括号访问)
- 与接口显式属性声明的引导
- Monorepo 共享类型的一致性影响
noPropertyAccessFromIndexSignature 开启后,对"索引签名提供的属性"禁止点访问(obj.key),必须用括号访问(obj['key'])——因为点访问隐含"属性静态存在",而索引签名的键是动态的,强制括号访问表达"动态键"语义,并引导开发者给常用字段补显式接口声明。Monorepo 协作:共享包若用 Record/索引签名建模动态数据(配置表、事件载荷、API 字典),消费包在开启该选项后必须括号访问,类型语义统一;若共享包未开而消费包开启,跨包类型(从声明文件导出)仍按声明文件的编译选项检查,会造成"本地写法不同但类型相同"的体验分裂,因此建议 base tsconfig 统一开启并同步 lint 规则(dot-notation 关、no-dynamic-key 类规则配合)。实践:配合显式接口优先——动态数据先建模接口,索引签名只做兜底。
考察索引签名访问规范的工程落地:点/括号访问的语义区分与跨包一致性,回答应说明选项语义与 Monorepo 统一配置。