泛型回调为何可能无法在函数体内按判别字段完成关联收窄
简答题困难596 次浏览
参考答案与解析
# 核心结论
泛型参数即使受联合类型约束,也仍表示“调用时选定的某个未知类型”,而不是函数体中可以随判别分支重新绑定的普通联合值。因此,检查一个运行时判别字段,未必能让所有依赖同一泛型参数计算出来的参数同步收窄。若接口必须维持事件名称、载荷和处理器参数之间的对应关系,对外可以用键值映射和泛型提供准确调用约束,对内则优先转换为判别对象联合、判别元组联合或按键建立处理器表,使关联信息保存在同一个可收窄的联合值中。
# 底层机制
假设事件映射如下:
type Events = {
login: { userId: string };
logout: { reason: string };
};
fun
