使用typescript

时间:2016-07-29 22:37:09

标签: node.js typescript

我有一个节点项目,其本质上是 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 表明变量范围应该被认为是模块(也就是说,不是全局范围的一部分),而用传统语法来解决它似乎并不够聪明。请注意以下差异:

using import keyword

traditional approach

import版本中,您会看到“有希望的帮助”会突出显示,因为它“无法找到模块”,因为没有接口或键入内容而无法找到它。

然而,在“传统方法”中,您会获得许多突出显示的变量,并且在每种情况下都会出现“无法重新声明块范围变量”。嗯,这实际上是误导性的,因为实际上没有冲突,因为已声明这些变量的其他地方在其他模块/文件中。

1 个答案:

答案 0 :(得分:0)

我发现,VS-Code的intellisense对传统语法非常不满意所以我的方法是:

a)从JS项目转换时将变量声明更改为“import”指令。对于nodejs开发人员而言,这似乎比ES2015语法更为熟悉,但这就是未来......

b)在绿地项目中或者当我开始在转换后的JS→TS项目上投入更多时,我发现自己正在转向ES2015语法

我认为没有任何正确的方法可以做到这一点,但上面是我目前的想法。