我有一個節點項目,它的本質是節點將使用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代碼該變量的作用域應被認爲是模塊(又名,而不是部分的一部分全球範圍),但似乎沒有足夠的智慧來用傳統的語法來解釋這一點。請注意以下區別:
在import
版本中,你會看到「有爲幫助」被突出顯示,因爲它「無法找到模塊」,這是可以預期的是沒有界面或打字。
但是,在「傳統方法」中,您會得到一些突出顯示的變量,並且在每種情況下它都在「無法重新聲明塊範圍變量」。嗯,這實際上是誤導性的,因爲實際上沒有衝突,因爲其他地方已經聲明這些變量在其他模塊/文件中。
如果可以,我會使用ES2015語法。我開始在節點上使用typescript並遇到同樣的問題,但出於某種原因,我無法使ES2015語法工作 – Filype