2016-07-29 51 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-コード、変数のスコープは、モジュール(の別名ではなく、一部の一部とみなされるべきであることをグローバルスコープ)、伝統的なシンタックスではそれほど賢明ではないようです。あなたはそれのように予想される「モジュールを見つけることができない」ので、「有望ヘルプ」が強調表示されていることがわかりますimportバージョンで

using import keyword

traditional approach

:以下の違いに注意してくださいそこにはインタフェースや型付けがありません。

しかし、従来のアプローチでは、いくつかの強調表示された変数があり、いずれの場合も「ブロックスコープ変数を再宣言できません」ということに気をつけています。実際には、これらの変数が宣言されている他の場所が他のモジュール/ファイルにあるため、実際には矛盾がないので、実際には誤解を招くことになります。

+1

可能であれば、ES2015の構文を使用します。私はノードでtypescriptを使い始めて同じ問題に遭遇しましたが、何らかの理由でES2015の構文が全く機能しなくなりました – Filype

答えて

0

私はVS-コードのインテリセンスGETの伝統的な構文を持つ非常に不幸がので、この時点で私のアプローチがあることを、見つけました:

から変換するときa)は、「輸入」ディレクティブに変数宣言を変更JSプロジェクトこれは、ESX2015の構文よりもnodejsの開発者にはもっとよく知られていますが、それは未来のものです...

b)グリーンフィールドプロジェクトで、または変換されたJS→TSプロジェクトにもっと投資し始めると、 ES2015構文

が正しいとは思わないこれを行う方法は私の現在の考え方です。

関連する問題