为什么这个简单的代码
const arr: [string, number] = ['str', 1];
function fn(arg1?: string, arg2?: number): void {
alert(arg1);
}
fn(...arr);
产生此错误:
类型'字符串|的参数数'不能分配给' string'类型的参数。 输入'数字'不能指定为' string'。
当我将电话改为
时fn(arr[0], arr[1])
一切正常。
为什么传播不能按预期工作? 为什么type也被转换为' string |数字&#39 ;? 难道它不会检测到第一个是字符串而后者是数字吗?
答案 0 :(得分:1)