Декларация импорта конфликтует с локальной декларацией «Соединение» - PullRequest
0 голосов
/ 13 марта 2020

У меня есть сервер NodeJS / Express, написанный на машинописном шрифте, который подключается к базе данных mysql. Мои зависимости включают "mysql2": "1.7.0" и "@types/mysql2": "github:types/mysql2". Каждый раз, когда я запускаю yarn add или yarn upgrade по какой-то причине, кажется, что обновляются зависимости для mysql2 или его типов. При попытке зафиксировать код запускается tsc --noEmit, который генерирует следующие предупреждения:

node_modules/@types/mysql/index.d.ts:2:1 - error TS2440: Import declaration conflicts with local declaration of 'Connection'.

2 import Connection = require('./lib/Connection');
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Same for PoolConnection, Pool, PoolCluster, and Query //

Found 5 errors.

husky > pre-commit hook failed (add --no-verify to bypass)

Я прочитал этот поток несколько раз, но я не могу понять, что на самом деле вызывает эту проблему, так как нет Независимо от того, как или как часто я это исправляю, он всегда возвращается, когда обновляются мои файлы yarn.lock.

Какие версии каких зависимостей мне нужно установить, чтобы использовать mysql2 с машинописью, и как я могу их предотвратить быть обновленным и ломать вещи снова? Моя посылка. json выглядит следующим образом (некоторые детали удалены из-за того, что я работаю в компании):

{
  "scripts": {
    "build": "tsc",
    "clean": "rimraf dist",
    "local": "nodemon",
    "format": "prettier \"{src,tests}/**/*.{ts,js}\" --write",
    "lint": "tslint --project tsconfig.json --fix",
    "typecheck": "tsc --noEmit",
    "test": "jest",
  },
  "devDependencies": {
    "@google-cloud/datastore": "^5.0.4",
    "@types/body-parser": "^1.17.1",
    "@types/cors": "^2.8.6",
    "@types/dotenv": "^6.1.1",
    "@types/express": "^4.17.1",
    "@types/express-session": "^1.15.14",
    "@types/faker": "4.1.0",
    "@types/jest": "^24.0.18",
    "@types/luxon": "^1.21.0",
    "@types/mysql2": "github:types/mysql2",
    "@types/passport": "^1.0.1",
    "@types/passport-jwt": "^3.0.2",
    "@types/request-promise": "^4.1.45",
    "@types/supertest": "^2.0.8",
    "faker": "4.1.0",
    "husky": "^3.1.0",
    "jest": "^24.9.0",
    "lint-staged": "^9.4.3",
    "prettier": "^1.19.1",
    "rimraf": "^3.0.0",
    "supertest": "^4.0.2",
    "ts-jest": "^24.1.0",
    "tslint": "^5.20.1",
    "tslint-config-prettier": "^1.18.0",
    "typescript": "^3.7.2"
  },
  "dependencies": {
    "aws-sdk": "^2.585.0",
    "body-parser": "^1.19.0",
    "cors": "^2.8.5",
    "dotenv": "^8.1.0",
    "express": "^4.17.1",
    "express-jwt": "^5.3.1",
    "express-session": "^1.16.2",
    "express-validator": "^6.2.0",
    "hubspot": "^2.3.5",
    "jsonwebtoken": "^8.5.1",
    "jwks-rsa": "^1.6.0",
    "luxon": "^1.21.3",
    "mysql2": "1.7.0",
    "nodemon": "^1.18.9",
    "passport": "^0.4.0",
    "passport-jwt": "^4.0.0",
    "request": "^2.88.0",
    "request-promise": "^4.2.5",
    "request-promise-native": "^1.0.8",
    "selfsigned": "^1.10.7",
    "ts-node": "^8.4.1"
  }
}

Любая помощь будет признательна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...