在TypeScript项目

时间:2016-11-24 15:24:16

标签: node.js visual-studio typescript momentjs

这是我到目前为止所做的:

  • 安装NodeJ并使用它:node命令可用
  • 使用npm安装TypeScript:npm install typescript -g
  • 现在我可以创建.ts个文件,使用TypeScript语法并使用tsc命令编译文件

好的,从现在开始一切正常。我正在做的是将Java库转换为TypeScript。但是我遇到了一个问题:Java库正在使用Calendar对象,我在TypeScript中需要相同类型的对象。

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

问题:我该怎么做?我在StackOverflow上四处看看,但在每一篇文章中我发现有些东西让我觉得这不是我的解决方案,例如:

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

依旧......

我想知道我遗漏了什么以及如何在npm文件中加入moment.d.ts以便使用它。我可能对这些模块的组织缺乏一些了解,因此欢迎每一个解释。

  • NodeJs版本:7.1.0
  • TypeScript版本:2.0.10

修改

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

enter image description here

问题是我通过创建新文件,更改扩展名并在Visual Studio中打开它来手动创建每个tsc Test.ts --traceResolution文件。也许这就是问题?我只是使用Visual Studio作为IntelliSense的文本编辑器。我是否必须制作一些东西以使Visual Studio了解导入来自NodeJS?

1 个答案:

答案 0 :(得分:1)

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

    导入*作为'时刻';

  3. 的时刻
  4. 在typescript中使用moment.js

    var momentObject:moment.Moment

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