将外部脚本添加到角度2

时间:2017-06-25 08:18:33

标签: angular

因此,例如,如果您想将条带等付款系统包含在角度应用程序中。但是,唯一的方法是像这样访问脚本。

<script src="https://checkout.stripe.com/checkout.js"></script>

我知道将它扔进index.html文件并不是一件好事。我也看到有人提到articles像这样访问窗口

(<any>window)

在角度应用中。我不认为引用全局窗口对象是个好主意。

那么最好的还是接近最好的替代方案是允许某人在他们的角度2模块中使用外部脚本。

2 个答案:

答案 0 :(得分:0)

我建议使用此处的类型版本:https://www.npmjs.com/package/@types/stripe

如果您遇到DefinitelyTyped中不存在的库,您始终可以创建该库的类型定义并推送到DefinitelyTyped的repo。

答案 1 :(得分:0)

我认为最好使用像npmbower这样的包管理器。然后,您可以将文件包含在angular-config文件中。然后,一些包提供了他们的TypeScript类型,因此您可以轻松地将它们导入到TypeScript模块中。

如果没有所需库的包管理器包,我可能会将脚本复制到我自己的js目录中。所以我可以更好地维护脚本的版本,而不仅仅是使用CDN。

我首选的处理库的方法,它不提供TypeScript的输入。我创建自己的打字/接口并投射所需的对象。例如:

interface Greeter
{
    sayHello(name: string): string;
    sayGoodbye(name: string): string;
}

(<Greeter>window.greeter).sayHello('Peter');

然后我有自动完成和正确的类型。

我不确定这是否是最好的建议/替代方案,但这是我的方式。但我对其他人的建议感兴趣!