Я пытаюсь расширить интерфейс expressjs приложений с использованием декларации сливаясь, как описано в экспресс-определения типарасширения экспресс-интерфейс приложения
declare module Express {
// These open interfaces may be extended in an application-specific manner via declaration merging.
// See for example method-override.d.ts (https://github.com/borisyankov/DefinitelyTyped/blob/master/method-override/method-override.d.ts)
export interface Request { }
export interface Response { }
export interface Application { }
}
Итак, мои app.ts выглядит следующим образом:
/// <reference path="typings/express/express.d.ts" />
declare module Express {
export interface Application {
testA: string;
}
export interface Request {
testR: string;
}
}
import express = require('express');
var app = express();
app.testA = "why not?";
app.use(function (req, res, next) {
req.testR = "xxx";
})
Я получаю ошибки:
«Собственность testA не существует по типу Express»
"Собственность testR не существует по типу Запрос"
Любые подсказки?
Вы пытались переместить 'declare module Express' в другой файл' * .d.ts'? По какой-то причине это может помочь. – zlumer