Website-Suche

ts node - Falscher Ausdruck: Nicht-String-Wert an `ts.resolveTypeReferenceDirective` in TypeScript übergeben


Wenn ich versuche, ts-node-dev ./index.ts auszuführen, erhalte ich den unten stehenden Fehler. Ich habe mein TypeScript und ts-node-dev, ts-node aktualisiert, aber dieser Fehler taucht weiterhin auf. Wenn ich Abhängigkeiten entferne, die @types/XXXX (z.B. @types/express) enthalten, funktioniert es einwandfrei.

Falscher Ausdruck: Es wurde ein Nicht-String-Wert an ts.resolveTypeReferenceDirective übergeben, wahrscheinlich durch ein Wrapper-Paket, das mit einer veralteten resolveTypeReferenceDirectives-Signatur arbeitet. Dies ist wahrscheinlich kein Problem in TS selbst.

    "dependencies": {
    "ajv": "^8.9.0",
    "axios": "^0.27.1",
    "exceljs": "^4.3.0",
    "express": "^4.17.1",
    "json2csv": "^5.0.7",
    "moment-timezone": "^0.5.33",
    "mysql": "^2.18.1",
    "mysql-utilities": "^1.1.3",
    "q": "^1.5.1",
    "ts-node": "^10.8.0",
    "ts-node-dev": "^2.0.0",
    "typescript": "^4.7.2",
    "winston": "^3.3.3",
    "winston-daily-rotate-file": "^4.5.5"
  },
  "devDependencies": {
    "@types/chai": "^4.2.22",
    "@types/express": "^4.17.11",
    "@types/jest": "^27.4.0",
    "@types/mocha": "^9.0.0",
    "@types/mysql": "^2.15.20",
    "@types/node": "^15.6.1",
    "chai": "^4.3.4",
    "jest": "^27.4.7",
    "mocha": "^9.1.2",
    "ts-jest": "^27.1.3"
  },

Antwort #1

Das Upgrade auf "ts-node": "10.8.1" hat das Problem für mich gelöst.

Antwort #2

Lösung

Mein Problem wurde durch das Upgrade von TypeScript von 4.6 auf ^4.7 verursacht, und ich habe dies getan, um es zu beheben:

With NPM
npm install ts-node-dev@latest ts-node@latest

With yarn
yarn upgrade ts-node-dev@latest ts-node@latest

With pnpm
pnpm up ts-node-dev@latest ts-node@latest

Ich habe "ts-node": "^10.7.0" und "ts-node-dev": "^1.1.8" verwendet, nach dem Upgrade beider Dev-Abhängigkeiten wurde das Problem gelöst.

Warum

TS 4.7 aktualisiert den Auflösungsmodus (siehe die letzte Zeile). Da ts-node und ts-node-dev intern den alten Auflösungsmodus verwenden, behebt ein Update auf die neuere Version, genauer gesagt ts-node@>=10.8.0 und ts-node-dev@>=2, dieses Problem.

Dieses Kapitel wird für @KhachaturStepanyan hinzugefügt

Kurz gesagt

Nach dem Upgrade nur von "ts-node" (aus Houssem Hichris Antwort) blieb der Fehler bestehen, da ich "ts-node-dev": "^1.1.8" verwendete.

Antwort #3

Ich habe TypeScript auf 4.7.4 aktualisiert und das Problem behoben, indem ich ts-loader auf 9.3.1 aktualisiert habe.

Verwandte Artikel