【发布时间】:2016-08-05 16:27:00
【问题描述】:
我有一个节点项目,它本质上是 node 将使用 CommonJS 模块系统。我感到困惑的是,我似乎可以使用以下任何语法来做同样的事情:
// Traditional Node Syntax
const _ = require('lodash');
// Using the import keyword instead of a variable declaration
import _ = require('lodash');
// ES2015 module syntax
import * as _ from 'lodash';
我想只使用传统语法,但不知道这样做是否会错过任何东西。
但是,我确实注意到的一件事是,如果您使用 import 关键字,它似乎确实向 vs-code 表明变量作用域应该被视为模块的一部分(又名,不是全局范围的一部分),而它似乎不够聪明,无法用传统语法解决这个问题。请注意以下区别:
在import 版本中,您会看到“promising-help”被突出显示,因为它“找不到模块”,这是预期的,因为没有接口或输入。
然而,在“传统方法”中,您会看到许多突出显示的变量,并且在每种情况下,它都会对“无法重新声明块范围变量”犹豫不决。嗯,这实际上是一种误导,因为实际上没有冲突,因为声明这些变量的其他地方在其他模块/文件中。
【问题讨论】:
-
如果可以的话,我会使用 ES2015 语法。我开始在 node 中使用 typescript 并遇到了同样的问题,但由于某种原因,我根本无法使用 ES2015 语法
标签: node.js typescript