Я пытаюсь получить виджеты TypeScript и различных руководств о том, как использовать node.js и выразить разговор о добавлении свойств в объект Request, прежде чем передавать их через промежуточное программное обеспечение.Расширение объекта экспресс-запроса с использованием TypeScript
Конечно, для типа сценария эти свойства должны быть определены таким образом, я попытался сделать это в файле с именем local.d.ts:
/// <reference path="tsd.d.ts" />
import mySql = require('mysql');
declare module Express {
export interface Request {
dbPool: mySql.IPool;
}
}
Затем я пытаюсь вызвать его из моего основного кода файла :
/// <reference path="typings/tsd.d.ts" />
/// <reference path="typings/local.d.ts" />
...
import express = require('express');
...
var pool = mySql.createPool({
user: "username",
...
});
app.use(function (req, res, next) {
req.dbPool = pool;
});
Но я получаю: «Свойство« dbPool »не существует в типе« Запрос ». Что я делаю неправильно?
Когда я это делаю, появляется «тестовый» интерфейс, размещенный в том же файле, но расширение все еще не работает. Он также генерирует «Назначение экспорта не может использоваться в модуле с другими экспортируемыми элементами». Ошибка в исходном файле express.d.ts. – Nidonocu
Это проблема с порочным кругом, и я думаю, что [должно быть сообщено] (https://github.com/Microsoft/TypeScript/issues). Я нашел некоторое обходное решение. – Artem