使用扩展运算符调用函数

时间:2017-10-31 02:16:57

标签: typescript

为什么这个简单的代码

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 ;? 难道它不会检测到第一个是字符串而后者是数字吗?

1 个答案:

答案 0 :(得分:1)

很好的发现。这已经被Typescript社区误认为是

https://github.com/Microsoft/TypeScript/issues/4130

看起来他们仍在努力。