Angular 如何在编译过程中产生角度信号错误

Angular 如何在编译过程中产生角度信号错误,angular,function,build,compilation,ignore,Angular,Function,Build,Compilation,Ignore,我有一个函数,用于在javascript中将数据传递给API。该函数使用我放在html页面标题处的API javascript链接 现在我正在使用Angular重建整个系统,函数被标记为错误,我无法使用“ng build--prod”构建项目。我可以让编译器知道函数是从我放在index.html页面中的API链接来的,或者我可以让编译器忽略错误并构建项目。下面是与api链接连接的函数“getPaidSetup()” .... .... doSomething(){ // the

我有一个函数,用于在javascript中将数据传递给API。该函数使用我放在html页面标题处的API javascript链接

现在我正在使用Angular重建整个系统,函数被标记为错误,我无法使用“ng build--prod”构建项目。我可以让编译器知道函数是从我放在index.html页面中的API链接来的,或者我可以让编译器忽略错误并构建项目。下面是与api链接连接的函数“getPaidSetup()”

....
....

  doSomething(){
      // the following getpaidSetup() function is throwing an error "error TS2304: Cannot find name 'getpaidSetup'."
      var x = getpaidSetup({ // this is dependent on the link placed in the index page
          customer_email: 'useremailishere@domain.com',
          amount: 1000,
      });
  }
 ----

Anyone with idea on how I can build the project or make the compiler ignore the error? Thanks in advance

这是对@Vikas建议的有助于OP的注释的解释,该注释试图调用index.html上定义的函数。评论时间太长了,基本上解决了OP想要的问题

答案是1)名称空间和2)类型脚本

如果您在全局名称空间中并定义了一个函数,它将成为
window
的属性。在这个全局上下文中,您不必显式地说
window.getPaidSetup()
,您可以说`getPaidSetup()

在Angular中,您几乎总是在“类”中定义函数,这是它自己的名称空间。如果要在
窗口中调用某个内容
,则需要明确地说出来<代码>窗口。getPaidSetup()

但是,我们使用的是typescript,如果您说
window.getPaidSetup()
(试试看),它应该会有问题。为什么?因为typescript不知道您使用新函数扩展了窗口对象类型。让它安静下来的快速而肮脏的方法是将它转换为
any
,这意味着不必担心严格的类型。您可以使用
(任何窗口)就地转换。GetPaidSet()


这是我发现的一篇很好的博文,内容比你想知道的还要多

您是说getPaidSetup在window对象上?可能是try(任何窗口)。getpaidSetupyeah,typescript是说,
getPaidSetup
未在此类上定义。您可以像上面的注释那样显式地调用window,但在angular中,更常见的做法是将调用放在服务类中,而不使用index.html。是的,谢谢@Dan Oswalt。这对我有用。非常感谢,你让我免于头痛。但是,你能给(任何窗口)提供更多的信息吗?下面的回答是官方的回答(太长了!这基本上是帮助你解决问题的答案),谢谢你的解释。这很有帮助