因此,例如,如果您想将条带等付款系统包含在角度应用程序中。但是,唯一的方法是像这样访问脚本。
<script src="https://checkout.stripe.com/checkout.js"></script>
我知道将它扔进index.html文件并不是一件好事。我也看到有人提到articles像这样访问窗口
(<any>window)
在角度应用中。我不认为引用全局窗口对象是个好主意。
那么最好的还是接近最好的替代方案是允许某人在他们的角度2模块中使用外部脚本。
答案 0 :(得分:0)
我建议使用此处的类型版本:https://www.npmjs.com/package/@types/stripe
如果您遇到DefinitelyTyped中不存在的库,您始终可以创建该库的类型定义并推送到DefinitelyTyped的repo。
答案 1 :(得分:0)
我认为最好使用像npm
或bower
这样的包管理器。然后,您可以将文件包含在angular-config文件中。然后,一些包提供了他们的TypeScript类型,因此您可以轻松地将它们导入到TypeScript模块中。
如果没有所需库的包管理器包,我可能会将脚本复制到我自己的js目录中。所以我可以更好地维护脚本的版本,而不仅仅是使用CDN。
我首选的处理库的方法,它不提供TypeScript的输入。我创建自己的打字/接口并投射所需的对象。例如:
interface Greeter
{
sayHello(name: string): string;
sayGoodbye(name: string): string;
}
(<Greeter>window.greeter).sayHello('Peter');
然后我有自动完成和正确的类型。
我不确定这是否是最好的建议/替代方案,但这是我的方式。但我对其他人的建议感兴趣!