2016-11-24 68 views
1

这是我迄今所做的:使用moment.js(或矩timezone.js)

  • 安装和的NodeJS它玩法:node命令才可
  • 安装打字稿用npmnpm install typescript -g
  • 现在我能够用tsc命令创建.ts文件,使用打字稿语法和编译文件

好吧,从现在开始,一切正常。我正在做的是将Java库转换为TypeScript。但是我面临一个问题:Java库使用的是Calendar对象,我需要TypeScript中的同一种对象。

我已经搜索了一下,找到了moment.js。我想将该库导入到我的TypeScript文件中。

问题:我该怎么做?我环顾四周,在计算器上,但在每一个岗位,我发现有些东西让我觉得这不会是我的解决方案,如:

  • 安装typings/tsd:我读过,现在moment.js现在有一个定义文件(对不起,也许它不是很好的术语,但它有一个moment.d.ts文件)
  • 检查random.config.json文件:我没有这样的配置文件(不是在我猜中的NodeJs中,在TypeScript中我有tsconfig.json文件,并试图包含moment.d.ts文件,但我无法将其导入到TypeScript>"cannot find module moment"
  • npm安装时刻:我已经完成了,但我没有找到如何在我的项目中包含moment.d.ts文件。

等等...

我想知道我失踪,如何纳入我的.ts文件moment才能使用它。我可能缺乏关于这些模块组织的一些知识,所以每个解释都会受到欢迎。

  • 版本的NodeJS:7.1.0
  • 打字稿版本:2.0.10

编辑

挖了一下后,我发现我可以编译使用tsc Test.ts --traceResolution.ts文件查看导入是否已正确解析。结果:他们是!现在真正的问题是我的IDE(Visual Studio)不知道moment

enter image description here

的事情是,我已手动创建的每个.ts文件,创建一个新的文件,更改扩展名,并在Visual Studio中打开它。也许这是问题?我只是将Visual Studio用作带有IntelliSense的文本编辑器。为了让Visual Studio知道导入来自NodeJS,我必须做些什么吗?

+1

有一个(http://momentjs.com) –

+0

这是我做的,但如前所述,当我想导入'时刻',我得到了一个错误'找不到模块“时刻”。我也尝试设置编译器选项,但我得到了同样的错误。 – Jacks

回答

0
  1. 您不必安装moment.js接口,因为它提供了它自己的类型定义。
  2. 在打字稿中输入moment.js(你是对的)。

    import * from'moment';

  3. 在打字稿使用moment.js

    VAR momentObject:moment.Moment

    momentObject.something()(例如:momentObject.add(..))

+0

我终于可以在我的解决方案中使用moment.js,但我不得不做一些更改。我所有的班级都将他们放入一个“命名空间”中,但后来我无法导入“时刻”。我只能将'namespace MyNamespace {export class MyClass {...}}'改成'export class MyClass {...}'。你知道为什么吗 ?然后我会让你写一个我很乐意接受的答案,谢谢 – Jacks