核心结论
额外属性检查不是一般的结构兼容规则,而是TypeScript针对新鲜对象字面量提供的附加诊断。对象字面量直接赋给目标类型、直接作为实参或通过satisfies校验时,未知键通常会被报告;对象先存入变量后再赋值,新鲜性消失,只要它至少包含目标类型要求的成员,额外成员通常合法。因此,额外属性检查主要用于捕获拼写错误,不能表示对象类型天然封闭,也不能替代运行时字段校验。
底层机制
TypeScript采用结构类型系统。源对象拥有目标类型要求的全部成员时,多出成员通常不影响目标视角下的安全读取。例如某变量同时包含name、age和admin,赋给只要求name与age的类型通常