Angular2-提供的参数中的“ng build-prod”结果与调用目标的任何签名不匹配

Angular2-提供的参数中的“ng build-prod”结果与调用目标的任何签名不匹配,angular,typescript,angular2-aot,Angular,Typescript,Angular2 Aot,我用的是什么 有棱角的 我想做什么 运行ng build-prod命令 发生了什么 我收到以下错误: 提供的参数与调用目标的任何签名都不匹配 运行“ng build-watch”时不存在此错误 我试过的 我删除了一些HTML,其中包括一个提交按钮,用于将一些值传递给组件typescript文件中的函数。当我这样做时,build命令工作得很好。 组件HTML 下面是导致问题的HTML代码段。我从输入字段中获取值,并将它们推送到函数中。运行“ng build-watch”时,我没有任何问题,一切正常

我用的是什么

有棱角的 我想做什么

运行ng build-prod命令 发生了什么

我收到以下错误: 提供的参数与调用目标的任何签名都不匹配

运行“ng build-watch”时不存在此错误 我试过的

我删除了一些HTML,其中包括一个提交按钮,用于将一些值传递给组件typescript文件中的函数。当我这样做时,build命令工作得很好。 组件HTML

下面是导致问题的HTML代码段。我从输入字段中获取值,并将它们推送到函数中。运行“ng build-watch”时,我没有任何问题,一切正常。只有在“prod”命令下,我才能在终端中接收到错误

添加
您的提交表单需要6个参数,您正在使用模板中的5个值调用该函数。
您缺少用于上载的值。

您的提交表单需要6个参数,您正在使用模板中的5个值调用该函数。 您缺少上载值。

使用-prod生产模式时,cli将使用AoT提前编译

AoT对类型、签名和其他方面更为敏感

submitForm函数需要一个非可选的upload:upload参数作为最后一个参数,单击时不会传递该参数

这里有两个选项:

第一种也是建议的方法:将其设置为可选的,比如submitFormtitle:string、reference:string、date:string、auditorName:string、newCompanyName:string、upload?:upload

备选方案:在模板中的最后一个参数处传递null

希望能有帮助

更新:在编辑了您的问题和评论之后,我可能应该在这里添加第三个选项:如果函数中未使用参数,则删除该参数。

使用-prod生产模式时,angular cli将使用AoT提前编译

AoT对类型、签名和其他方面更为敏感

submitForm函数需要一个非可选的upload:upload参数作为最后一个参数,单击时不会传递该参数

这里有两个选项:

第一种也是建议的方法:将其设置为可选的,比如submitFormtitle:string、reference:string、date:string、auditorName:string、newCompanyName:string、upload?:upload

备选方案:在模板中的最后一个参数处传递null

希望能有帮助


更新:在你编辑了你的问题和评论之后,我可能应该在这里添加第三个选项:只要删除参数,如果它没有在你的函数中使用。

什么是单击函数?你检查压痕了吗?这是打字错误还是真的是这样?单击是我将新输入值传递给component.ts中的函数的方式。至于缩进,这是堆栈溢出。我不能把它整齐地挤进去…点击功能是什么?你检查压痕了吗?这是打字错误还是真的是这样?单击是我将新输入值传递给component.ts中的函数的方式。至于缩进,这是堆栈溢出。我没法把它干净利落地塞进……啊,明白了。上传实际上是从typescript文件,这就是为什么它没有在HTML中引用,因为它不是我需要从HTML传递的东西。我已经更新了代码以显示完整的typescript文件。在这种情况下,最好的选择是什么?如果你不需要像以前一样传递它,为什么要将它声明为param?把它拿走。抱歉,也许我不清楚。我正在调用一个上传服务,它需要来自html和上传的所有新输入值。但是,上载来自组件ts文件,而不是html。我上面的评论是说我没有/不能通过HTML上传,这就是为什么它只是TS文件。正如您所说,这意味着提交按钮为5个参数,而ts功能为6个参数。但它需要6个。这就是我现在被困的地方。为什么?您没有使用参数,因此不需要它。在components submitForm函数中,调用另一个同名函数,但该函数在服务中,而不是在组件中。并且您不从函数中传递upload对象,而是传递组件的currentUpload的引用。所以不,你不需要6个,你只需要前5个。天哪……你说得对。我怎么会对这件事视而不见?!我盯着它看了很久了。很好,先生,谢谢你的耐心!啊,明白了。上传实际上是从typescript文件,这就是为什么它没有在HTML中引用,因为它不是我需要从HTML传递的东西。我已经更新了代码以显示完整的typescript文件。在这种情况下,最好的选择是什么?如果你不需要像以前一样传递它,为什么要将它声明为param?把它拿走。抱歉,也许我不清楚。我正在调用一个上传服务,它需要来自html和uploa的所有新输入值
D但是,上载来自组件ts文件,而不是html。我上面的评论是说我没有/不能通过HTML上传,这就是为什么它只是TS文件。正如您所说,这意味着提交按钮为5个参数,而ts功能为6个参数。但它需要6个。这就是我现在被困的地方。为什么?您没有使用参数,因此不需要它。在components submitForm函数中,调用另一个同名函数,但该函数在服务中,而不是在组件中。并且您不从函数中传递upload对象,而是传递组件的currentUpload的引用。所以不,你不需要6个,你只需要前5个。天哪……你说得对。我怎么会对这件事视而不见?!我盯着它看了很久了。很好,先生,谢谢你的耐心!