我终于学会了打字稿,但我遇到了很多问题。像jquery和pixijs这样的库可以工作,因为它们包括类型定义(npm install --save @types\jquery等)。然而,我在尝试使用momentjs时遇到了一个问题。基于文档,它说简单地使用npm来安装和导入moment。然而,这是行不通的。我试过几种不同的方法让它起作用,但似乎没有什么效果。
现在,我正在使用一个非常基本的类型记录2.9/AMD设置。这个项目应该是具体的
使用导入会导致我的整个文件中断,所以这不是一个选项。是否有办法使moment在全球范围内可用,就像PIXI和Jquery一样?
感谢你的指导。
发布于 2018-09-15 23:09:17
我认为你的问题有两个不同的方面:
1)全球var.
如何使动量作为全局变量可用,而不使用javascript模块?
是的,这是可能的。请参阅有关“浏览器”使用的文档。http://momentjs.com/docs/。只需从CDN或本地将其缩小的JS包含到HTML中即可。他们也有关于将它与需求一起使用的文档。
请注意,如果PIXI和JQuery是全局可用的,那么显然您已经在代码中的某个地方这样做了(作为脚本标记,作为AMD模块要求的副作用等等)。您提到,这是因为这些库有类型文本定义,但事实并非如此。定义只是定义--它们告诉类型记录,例如,PIXI.Container有addChild方法,但是这个方法没有实际的代码。
2)类型定义.
Momentjs提供了定义https://github.com/moment/moment/blob/develop/moment.d.ts。您可能可以下载并使用它的盒子。
尽管如此,如果你是从零开始的话,这似乎不是一个好方法。只需抓取Webpack,将PIXI、jquery和其他所有组件安装为npm模块,用ES6导入到类型记录中,并将所有内容编译成1分钟的JS文件。毕竟,你不能在你的生产应用程序中有数百个AMD JS模块,无论如何,你将不得不在某种程度上捆绑它们。
https://stackoverflow.com/questions/50844953
复制相似问题