2016-07-29 31 views
1

我有一個節點項目,它的本質是節點將使用CommonJS模塊系統。我感到困惑的是,它會出現,我可以使用下列任何語法做同樣的事情:使用typescript的節點項目的首選模塊語法

// 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代碼該變量的作用域應被認爲是模塊(又名,而不是部分的一部分全球範圍),但似乎沒有足夠的智慧來用傳統的語法來解釋這一點。請注意以下區別:

using import keyword

traditional approach

import版本中,你會看到「有爲幫助」被突出顯示,因爲它「無法找到模塊」,這是可以預期的是沒有界面或打字。

但是,在「傳統方法」中,您會得到一些突出顯示的變量,並且在每種情況下它都在「無法重新聲明塊範圍變量」。嗯,這實際上是誤導性的,因爲實際上沒有衝突,因爲其他地方已經聲明這些變量在其他模塊/文件中。

+1

如果可以,我會使用ES2015語法。我開始在節點上使用typescript並遇到同樣的問題,但出於某種原因,我無法使ES2015語法工作 – Filype

回答

0

我發現,該VS碼的智能感知獲取的非常不滿與傳統的語法,所以我在這一點上的做法是:

a)從轉換時改變變量聲明爲「進口」指令JS項目。這對nodejs開發人員來說似乎比ES2015語法更爲熟悉,但是因爲這是未來...

b)在新建項目中或者當我開始投資更多轉換後的JS→TS項目時,我發現自己正朝着ES2015的語法

我不認爲有任何權利這樣做,但以上是我目前的想法。

相關問題