打字稿和传播运算符?

2024-02-03

function foo(x:number, y:number, z:number) { 
   console.log(x,y,z);
}
var args:number[] = [0, 1, 2];

foo(...args);

为什么我在 Typescript Playground 中收到此错误???

提供的参数与调用目标的任何签名都不匹配。


所以有一个小条款你可能错过了:

类型检查要求扩展元素与剩余参数匹配。

无休息参数

但是你可以使用类型断言来动态化...它会为你转换回 ES5 / ES3:

function foo(x:number, y:number, z:number) { 
 console.log(x,y,z);
}
var args:number[] = [0, 1, 2];

(<any>foo)(...args);

这会导致相同的结果apply您期望的函数调用:

function foo(x, y, z) {
    console.log(x, y, z);
}
var args = [0, 1, 2];
foo.apply(void 0, args);

带剩余参数

另一种方法是,如果函数接受剩余参数,那么一切都会按照您的预期工作。

function foo(...x: number[]) { 
 console.log(JSON.stringify(x));
}
var args:number[] = [0, 1, 2];

foo(...args);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打字稿和传播运算符? 的相关文章

随机推荐

  • 休眠禁用缓存

    我想禁用休眠缓存 session setCacheMode CacheMode IGNORE 不起作用 query setCacheable false 也不起作用 此外 我可以以某种方式配置不为对象 X Y 执行缓存 但为对象 Z 执行缓
  • SQL 脚本到 SSIS 表达式

    我有下面的 T SQL 查询行 我正在尝试将其转换为 Visual Studio SSIS 表达式到派生列任务 So tableA刚刚 Work item Submission no 列 但我需要将它们分成两列 例如SubmissionCo
  • PHP 与 GET 请求的切换

    我正在为我的网站构建一个简单的管理区域 我希望 URL 看起来像这样 http mysite com admin home http mysite com admin settings http mysite com admin users
  • R grep 多列搜索模式

    我有一个数据框 如下所示 Col1 Col2 Col3 A B C D E F G H I 我试图保持与 Col2 中的 B 或 Col3 中的 F 匹配的行 以获得 Col1 Col2 Col3 A B C D E F I tried d
  • 如何使用 vb.net 将数据获取到数据库(类、模块和表单)

    我希望标题足以理解我的问题 我已经安装了运行 ADO NET 所需的东西 我的模块中已经有一个连接字符串 并且我的类中已经有一个数据查询 Imports System Data Imports System Data OleDb Modul
  • 如何使用 Razor MVC 显示文件夹中的图像?

    我正在使用 Razor MVC 我想显示 Content uploads 文件夹中的图像 我想出了以下解决方案 foreach FileInfo fileInfo in new DirectoryInfo Server MapPath Co
  • MSEdge 无法启动:崩溃(chrome 无法访问)

    我是 Selenium python 的初学者 我尝试使用以下代码使用现有配置文件 默认 调用 Edge 浏览器 但一旦执行开始 它就会抛出以下异常 有人可以帮我解决这个问题吗 我错过了什么吗 edge options webdriver
  • 当鼠标位于旋钮图像上时,如何将图像放在 jslider 的旋钮图像上

    当鼠标位于旋钮图像上时 我需要将图像放在 jslider 的旋钮图像上 我做过这样的事情 slider new Slider s new mySliderUI slider slider png slider setUI s slider
  • 在 Puppet 中迭代哈希键/值

    我正在尝试使用 Puppet 来更新 ASP NET web config 中的任意应用程序设置列表 用于部署目的 但我陷入了困境 主要是因为我是一个真正的 puppet 专家 我有这个 yaml 文件 hiera appSettings
  • “复数或单数生成的对象名称”设置是什么意思?

    设置新的实体数据模型时 可以选择 x 将生成的对象名称复数或单数化 我注意到这也是 LINQ 中的一个选项 另外 现在我正在研究 ADO NET 实体框架 我注意到它还有 DEFAULT 来 复数或单数生成的对象名称 设置 实体数据模型 时
  • Android Studio 中按 Enter 键换行?

    我刚刚开始使用 Android Studio 当我编辑 activity main xml 时 我无法通过按 Enter 键转到新行 另外 我尝试插入新字母 但新字母刚刚被替换 所以我到处点击以使输入键起作用 然后突然我得到了新的一行 我不
  • 如何使用MinGW Windres编译资源文件?

    我的最终目标是设置使用 MinGW gcc g 编译的可执行文件的版本 在属性 gt 详细信息中显示 但现在我想用 Windres 编译一个资源文件 以便稍后能够手动链接它 但是当我使用此命令时出现以下错误 windres resource
  • 通过批处理文件(.bat)编译 Inno Setup 项目

    在我的工作项目中 我们必须使用 Inno Setup 创建 4 个安装程序 这样 我必须逐个文件运行 这最终会占用我更多的时间 文件 iss setup prog 01 iss setup prog 02 iss setup prog 03
  • 解析 HTTParty 响应

    我正在使用 HTTParty 提取 Facebook 用户的书籍列表 但在解析响应时遇到问题 Facebook 以这种方式返回数据 data name Title category Book id 21192118877902 create
  • Mac上像Cloud App一样自动截图上传

    云应用程序 http getcloudapp com 有这个巧妙的功能 当新的屏幕截图添加到桌面时 它会自动上传它们 有什么想法如何做到这一点吗 您可以自己做类似的事情 而无需太多编程方式 在操作系统中 您可以配置 文件夹操作 http w
  • Android自定义视图组委托addView

    我想实现自定义ViewGroup就我而言 源自FrameLayout但我希望从 xml 添加的所有子视图不直接添加到此视图中 而是添加到FrameLayout包含在这个习俗中ViewGroup 让我举个例子来说明这一点
  • 缺少必需的模块 Firebase - Jenkins 构建错误

    我已经配置了 jenkins 来构建我的 ios swift 应用程序 我用过 xcode 版本 8 1 和 swift 版本 3 我是 Jenkins 的新手 并继续集成过程 根据我的控制台输出 我认为构建成功 因为控制台输出像这样打印
  • java.lang.UnsupportedOperationException:AdapterView 中不支持 addView(View, LayoutParams)

    我正在使用网上找到的 Expandable ListView 示例 活动 public class ExpandableListViewActivity extends ExpandableListActivity strings for
  • utf8mb4_unicode_ci 与 utf8mb4_bin

    首先让我们看看我是否做对了 字符集是一组符号和编码 排序规则是用于比较字符集中字符的一组规则 我应该使用 utf8mb4 因为 mysql utf8 是一种欺诈 最多 3 字节 而不是 PHP 中真正的最多 4 字节真正的 utf8 字符集
  • 打字稿和传播运算符?

    function foo x number y number z number console log x y z var args number 0 1 2 foo args 为什么我在 Typescript Playground 中收到