TS2339: A propriedade não existe no tipo

Estou convertendo um arquivo js para ts no WebStorm 2016.2.2.

Eu tinha o seguinte trecho:

///<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 einclude produziu os erros:

TS2339: A propriedade 'base_dir' não existe no tipo 'Global'

TS2339: A propriedade 'abs_path' não existe no tipo 'Global'

TS2339: A propriedade 'include' não existe no tipo 'Global'

Então, eu os adicionei à interface 'Global' da seguinte maneira:

///<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));
};

Eliminou esses erros.

Então, continuei convertendo o restante do arquivo, tive que importar os doisRequest eResponse do express, então adicionei o seguinte:

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

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

Então agora o trecho inteiro é assim:

///<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));
};

Infelizmente, adicionar oimport A instrução retornou o erro TS2339, por isso fiquei novamente com:

TS2339: A propriedade 'base_dir' não existe no tipo 'Global'

TS2339: A propriedade 'abs_path' não existe no tipo 'Global'

TS2339: A propriedade 'include' não existe no tipo 'Global'

O BTW Express não tem nada a ver com esse erro especificamente. Eu tentei importar de outros módulos e produziu o mesmo erro. Ocorre quando tenho pelo menos umimport declaração

Alguém sabe como posso corrigir isso?

Qualquer ajuda será profundamente apreciada!

questionAnswers(1)

yourAnswerToTheQuestion