Typescript:需要一个(新的)TYPINGS 文件以正确的方式(在节点中)?
Typescript: Require a (new) TYPINGS file the correct way (in node)?
我对导入 Typings 文件感到非常困惑,似乎有很多方法可以做到这一点。
我正在写一个nodejs程序。
我通过打字(不是环境模块)安装了 momentJS,并且我已经成功地像这样导入了它
var testOne = require('moment/moment');
import * as testTwo from 'moment';
import * as testThree from 'moment/moment';
看来三种方式都行得通。第一个选项是我习惯的原始节点要求方式...其他两个似乎是打字稿导入。
我使用了单一目录结构和 moment/moment,它们似乎同样有效。
我忽略了typings/browser...
所以我目前的目录结构实际上存储在这里
/typings/main/definitions/moment/index.d.ts
那么我应该使用 moment 还是 moment/moment?
我确实尝试检查文档,但我不知道我是否没有正确理解它,但我什么时候使用哪个导入?
关于打字?
我用来安装 momentjs 的 typings 命令是
typings install moment
import * as testTwo from 'moment';
和 var testOne = require('moment');
都是有效的并且是导入模块的正确方法。
不同之处在于,第一个将在设计时加载它的类型定义,智能感知将起作用并且编译器将即时验证它(如果您使用支持此内容的 IDE)。在 TypeScript 项目中,第一个优于第二个。但这里重要的是,编译和 运行 都按预期进行。
import * as testTwo from 'moment/moment';
和 var testOne = require('moment/moment');
也有效,但不应使用。
moment/moment
模块是由注册表中的 typings (only inside moment.d.ts
) when downloading the definition from the registry. It's a way they found to prevent conflicts. Take a look at the original moment.d.ts 文件创建的,它与您在本地系统中的文件不同。
不仅如此,您还选择了一个糟糕的库来进行比较。 require('moment/moment')
也有效,因为根 moment
项目路径中有一个 moment.js
文件。但这并不常见,并非所有包都这样做,应该避免。包旨在通过简单地引用它的名称来使用。
我对导入 Typings 文件感到非常困惑,似乎有很多方法可以做到这一点。
我正在写一个nodejs程序。
我通过打字(不是环境模块)安装了 momentJS,并且我已经成功地像这样导入了它
var testOne = require('moment/moment');
import * as testTwo from 'moment';
import * as testThree from 'moment/moment';
看来三种方式都行得通。第一个选项是我习惯的原始节点要求方式...其他两个似乎是打字稿导入。
我使用了单一目录结构和 moment/moment,它们似乎同样有效。
我忽略了typings/browser...
所以我目前的目录结构实际上存储在这里
/typings/main/definitions/moment/index.d.ts
那么我应该使用 moment 还是 moment/moment?
我确实尝试检查文档,但我不知道我是否没有正确理解它,但我什么时候使用哪个导入?
关于打字?
我用来安装 momentjs 的 typings 命令是
typings install moment
import * as testTwo from 'moment';
和 var testOne = require('moment');
都是有效的并且是导入模块的正确方法。
不同之处在于,第一个将在设计时加载它的类型定义,智能感知将起作用并且编译器将即时验证它(如果您使用支持此内容的 IDE)。在 TypeScript 项目中,第一个优于第二个。但这里重要的是,编译和 运行 都按预期进行。
import * as testTwo from 'moment/moment';
和 var testOne = require('moment/moment');
也有效,但不应使用。
moment/moment
模块是由注册表中的 typings (only inside moment.d.ts
) when downloading the definition from the registry. It's a way they found to prevent conflicts. Take a look at the original moment.d.ts 文件创建的,它与您在本地系统中的文件不同。
不仅如此,您还选择了一个糟糕的库来进行比较。 require('moment/moment')
也有效,因为根 moment
项目路径中有一个 moment.js
文件。但这并不常见,并非所有包都这样做,应该避免。包旨在通过简单地引用它的名称来使用。