我有一个节点项目,从本质上讲它是节点,它将使用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代码进行编码,将变量作用域视为模块的一部分(又名,而不是全局范围的一部分),而它却没有。似乎足够聪明,可以使用传统语法来解决这个问题。请注意以下区别:
在该import
版本中,您会看到“ promising-help”被突出显示,因为它“找不到模块”,这是可以预期的,因为没有接口或没有输入它。
但是,在“传统方法”中,您会获得许多突出显示的变量,并且在每种情况下,它都对“无法重新声明块作用域变量”感到沮丧。嗯,这实际上是令人误解的,因为实际上并没有冲突,因为声明了这些变量的其他位置在其他模块/文件中。
我发现,VS-Code的智能感知对传统语法非常不满意,因此我现在的方法是:
a)从JS项目转换时,将变量声明更改为“ import”指令。对于Node.js开发人员而言,这似乎比ES2015语法更熟悉,但这就是未来...
b)在未开发的项目中,或者当我开始对转换为JS→TS的项目进行更多投资时,我发现自己正在朝着ES2015语法发展
我认为没有任何正确的方法可以做到这一点,但以上是我目前的想法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句