Ця відповідь буде корисна тим, хто покладається на пакет npm ts-node
.
Я також боровся з такою ж занепокоєністю щодо розширення об'єкта запиту , я дотримувався безлічі відповідей у переповненні стека та закінчувався, дотримуючись наведеної нижче стратегії.
Я оголосив розширене введення тексту для експресу в наступному каталозі.${PROJECT_ROOT}/api/@types/express/index.d.ts
declare namespace Express {
interface Request {
decoded?: any;
}
}
потім оновлення мого tsconfig.json
до чогось подібного.
{
"compilerOptions": {
"typeRoots": ["api/@types", "node_modules/@types"]
...
}
}
навіть зробивши вищезазначені кроки, візуальна студія перестала скаржитися, але, на жаль, ts-node
компілятор все-таки звик кидати.
Property 'decoded' does not exist on type 'Request'.
Мабуть, ts-node
не вдалося знайти визначення розширеного типу для запиту об'єкта .
Врешті-решт, витративши години, як я знав, Кодекс VS не скаржився і зміг знайти визначення тексту, маючи на увазі, що щось не так із ts-node
комплаєром.
Початок оновлення script
у package.json
фіксованому для мене.
"start": "ts-node --files api/index.ts",
тут --files
аргументи відіграють ключову роль, знаходячи визначення визначень користувацького типу.
Для отримання додаткової інформації відвідайте: https://github.com/TypeStrong/ts-node#help-my-types-are-missing