2016-10-16 21 views
2

WebStorm 2016.2.2でjsファイルをtsに変換しています。TS2339:プロパティがタイプに存在しません

私は次のスニペット持っていた:

///<reference path="./typings/globals/node/index.d.ts" /> 

global.base_dir = __dirname; 

global.abs_path = function(path) { 
    return global.base_dir + path; 
}; 
global.include = function(file) { 
    return require(global.abs_path('/' + file)); 
}; 

base_dirabs_pathincludeはエラーを生成:

TS2339:プロパティ 'BASE_DIR' の種類には存在しない 'グローバル'

TS2339:プロパティ 'abs_path'が 'グローバル'タイプに存在しません

TS2339:不動産の種類に存在しない「を含む」は、「グローバル」

だから私は、次のように「グローバル」のインターフェイスにそれらを追加しました:

///<reference path="./typings/globals/node/index.d.ts" /> 

declare namespace NodeJS{ 
    interface Global { 
     base_dir: string; 
     abs_path: (path: string) => string; 
     include: (file: string) => string; 
    } 
} 

global.base_dir = __dirname; 

global.abs_path = function(path) { 
    return global.base_dir + path; 
}; 
global.include = function(file) { 
    return require(global.abs_path('/' + file)); 
}; 

をそれは、これらのエラーを排除しました。

その後、私は、ファイルの残りの部分を変換し続け、私は特急の両方RequestResponseを輸入しなければならなかったので、私は、次の追加:

///<reference path="./typings/modules/express/index.d.ts" /> 

import {Request, Response} from "~express/lib/express"; 

だから今全体のスニペットはそのようなものです:

///<reference path="./typings/globals/node/index.d.ts" /> 
///<reference path="./typings/modules/express/index.d.ts" /> 

import {Request, Response} from "~express/lib/express"; 

declare namespace NodeJS{ 
    interface Global { 
     base_dir: string; 
     abs_path: (path: string) => string; 
     include: (file: string) => string; 
    } 
} 

global.base_dir = __dirname; 

global.abs_path = function(path) { 
    return global.base_dir + path; 
}; 
global.include = function(file) { 
    return require(global.abs_path('/' + file)); 
}; 

残念ながら、import文を追加するとTS2339エラーを返しましたので、私は再び立ち往生:

TS2339:プロパティ「BASE_DIR」タイプに「グローバル」を存在しない

TS2339:不動産のタイプ上に存在しない「を含む」は:プロパティ「腹筋_経路は、」「グローバル」

TS2339タイプには存在しません。 'Global'

BTW Expressは特にこのエラーを伴うことはありません。私は他のモジュールからインポートしようとしましたが、同じエラーが発生しました。少なくとも1つのimportステートメントがある場合に発生します

私はそれを修正する方法を知っていますか?

ご協力いただければ幸いです。

+2

を参照してください。https://github.com/Microsoft/TypeScript/issues/1574 – lena

+0

@lenaありがとう、それはちょうど私の問題であり、このリンクではっきりと詳しく説明しています。あなたは答えとして書くことができ、私はそれを受け入れられた答えとしてマークします。いつものようにありがとう! – Alon

答えて

関連する問題