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_dir
、abs_path
とinclude
はエラーを生成:
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));
};
をそれは、これらのエラーを排除しました。
その後、私は、ファイルの残りの部分を変換し続け、私は特急の両方Request
とResponse
を輸入しなければならなかったので、私は、次の追加:
///<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
ステートメントがある場合に発生します
私はそれを修正する方法を知っていますか?
ご協力いただければ幸いです。
を参照してください。https://github.com/Microsoft/TypeScript/issues/1574 – lena
@lenaありがとう、それはちょうど私の問題であり、このリンクではっきりと詳しく説明しています。あなたは答えとして書くことができ、私はそれを受け入れられた答えとしてマークします。いつものようにありがとう! – Alon