Получение ‘Ответа интерфейса’ неправильно расширяет ‘Ответ интерфейса’

#node.js #typescript #express

#node.js #машинописный текст #выразить

Вопрос:

Я использую typescript и выражаю в node.js и когда я его компилирую, я получаю, когда я компилирую из typescript, я получаю эту ошибку

 node_modules/@types/express-serve-static-core/index.d.ts:505:18 - error TS2430: Interface 'Response<ResBody&&t;' incorrectly extends interface 'Response'.
  Types of property 'locals' are incompatible.
    Type 'Record<strin&, any&&t;' is missin& the followin& properties from type 'i18nAPI': locale, __, __n, __mf, and 5 more.

505 export interface Response<ResBody = any&&t; extends http.ServerResponse, Express.Response {
                     ~~~~~~~~
  

из моего packa&e.json

 "dependencies": {
    "@types/i18n": "^0.8.6",
    "@types/jest": "^26.0.7",
    "@types/moment": "^2.13.0",
    "@types/node": "^14.0.26",
    "@types/node-schedule": "^1.3.0",
    "@types/ws": "^7.2.6",
    "@typescript-eslint/eslint-plu&in": "^3.7.0",
    "@typescript-eslint/parser": "^3.7.0",
    "@types/express": "^4.17.7",
    "chokidar": "^3.4.1",
    "dblapi.js": "^2.4.0",
    "discord.js": "^12.2.0",
    "eslint": "^7.5.0",
    "eslint-plu&in-jest": "^23.18.2",
    "express": "^4.17.1",
    "findit2": "^2.2.3",
    "i18n": "^0.10.0",
    "jest": "^26.1.0",
    "moment": "^2.27.0",
    "node-schedule": "^1.3.2",
    "npm-check-updates": "^7.0.3",
    "tree-kill": "^1.2.2",
    "ts-jest": "^26.1.4",
    "typescript": "^3.9.7"
}
  

Кто-нибудь знает, что не так?

Ответ №1:

Попробуйте npm i -D @types/express-serve-static-core , включить skipLibCheck не очень хорошая идея.

Ответ №2:

Добавьте "skipLibCheck": true в tsconfi&.json. У меня это сработало.

Комментарии:

1. Если вы собираетесь это сделать, вы должны понимать последствия этого . в 9 случаях из 10 это неправильный поступок

Ответ №3:

skipLibCheck это скорее обходной путь, и вы не должны включать его, не зная, что вы делаете.

Проблема исправлена в последних версиях, поэтому, если у вас есть @types/express установка, обновите ее до последней npm i -D @types/express@latest или установите @types/express-serve-static-core явно с помощью npm i -D @types/express-serve-static-core

Вы можете проверить, какую версию @types/express-serve-static-core имеет с:

 $ npm ls @types/express-serve-static-core

redacted@2.1.4 /path/redacted
└─┬ @types/express@4.17.13
  └── @types/express-serve-static-core@4.17.28
        
  

От: https://&ithub.com/DefinitelyTyped/DefinitelyTyped/issues/46639

Ответ №4:

Я смог исправить эту ошибку. Сначала я попытался воссоздать это как минимальный код, необходимый для повторного создания (в подпапке в моем основном проекте), и все работало нормально, а затем я начал копировать все мои основные файлы в этот минимальный пример, и это все еще работало. Довольно скоро у меня был весь мой проект в этой подпапке, и он там работал. Итак, затем я просто удалил свой основной код и переместил содержимое вложенной папки на уровень выше, и он все еще работал там…… Не уверен, в чем разница. У меня есть подозрение, что это может быть из-за изменения порядка зависимостей, перечисленных в packa&e.json, который заставил его работать…

Ссылка: https://&ithub.com/DefinitelyTyped/DefinitelyTyped/issues/46639

Ответ №5:

Я получаю точно то же самое. Я понизил рейтинг до предыдущей версии (4.0.53) с текущей версии (4.17.9). Похоже, проблема в последней версии.

Комментарии:

1. Может быть. Также я смог это исправить, смотрите здесь &ithub.com/DefinitelyTyped/DefinitelyTyped/issues/46639