2016-03-30 7 views
3

マイフォルダ構造は、このようなものです:TypeScript:__dirname値?

  • アプリ
    • tsFolder XX.tsファイル内
      • XX.ts

コード:

var __dirname: string; 
console.log("__dirname: " + __dirname); // the output is undefined. 

私はそれを試してみました:コードvar __dirname: string;コメントアウトによって、__dirnameの値は次のとおりです。...../app/tsFolderのような現在のフォルダを指しているの...../app INSEAD。

誰でも説明できますか?

+0

これはノードにありますか? – Pavan

答えて

4

nodejsグローバル変数__dirnameを参照しているとします。

..../appを指している場合は、XX.tsが..../appフォルダにコンパイルされていることを示します。結果のjsファイルが実行されると、__dirnameはその(jsファイル)の場所を指します。

もちろん、新しいvar __dirnameを宣言するべきではありません。代わりに使用することは、typingsをnodejsのいずれかまたはちょうどこのように、手動でそれを宣言:ちょうど

npm install --save-dev @types/node 

を実行し、それが独自に動作しない場合は、お使いに

"types": ["node"] 

を追加

declare var __dirname; 
+0

申し訳ありませんが、私はあなたを取得していません。実際XX.tsはtsFolderの下にあり、コンパイル後にはその.jsファイルと.js.mapファイルはすべてtsFolderの下にあります。別の質問は、 'declare var __dirname;と' var __dirname'の違いは何ですか? –

+0

コンパイル済みのjsファイルの起動方法を投稿できますか?二つの違いは、 'var __dirname'はnodejsが提供する変数を上書きする新しい変数を定義することです。したがって、値は未定義です。 secondはこの変数が他のところで定義されているので、typescriptコンパイラは宣言されていないと文句を言うことはありません。たとえば、https://basarat.gitbooks.io/typescript/content/docs/types/ambient/variables.htmlなどを参照してください。 – Amid

1

tsconfig.jsoncompilerOptionsフィールド。