错误表达式:在打字稿中传递给“ts.resolveTypeReferenceDirective”的非字符串值

Moh*_*Ali 121 typescript ts-node ts-node-dev

当我尝试运行 ts-node-dev./index.ts 时,出现以下错误,我更新了我的打字稿和 ts-node-dev、ts-node,但如果我删除具有 @types 的依赖项,此错误会继续弹出/XXXX(例如:@types/express)它工作正常。

错误表达式:传递给 的非字符串值ts.resolveTypeReferenceDirective,可能是由使用过时签名的包装包造成的resolveTypeReferenceDirectives。这可能不是TS本身的问题。

    "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"
  },
Run Code Online (Sandbox Code Playgroud)

小智 168

升级"ts-node": "10.8.1"为我解决了这个问题。

  • 我将 TS 从 `4.6.4` 切换到 `4.8.0-dev.20220618` 并且开始出现错误。将“ts-node”从“10.7.0”升级到“10.8.1”并不能修复该错误。 (3认同)

Pab*_*ION 83

解决方案

我的问题是由将 typescript 从 升级4.6到引起的^4.7,我这样做是为了修复它:

# 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
Run Code Online (Sandbox Code Playgroud)

我正在使用"ts-node": "^10.7.0",并且"ts-node-dev": "^1.1.8"在升级两个开发部门后,问题就解决了。

为什么

TS 4.7升级了分辨率模式(见最后一行)。鉴于ts-node和ts-node-dev内部使用的是旧的解析模式,将它们更新到更高版本,确切地说,是ts-node@>=10.8.0和ts-node-dev@>=2,解决了这个问题。

本章是为@KhachaturStepanyan 添加的

长话短说

仅升级“ts-node”(来自 Houssem Hichri 的答案)后,错误仍然存​​在,因为我正在使用"ts-node-dev": "^1.1.8".

  • 太棒了,这解决了 (3认同)
  • @KhachaturStepanyan 我为你添加了“为什么”一章。 (3认同)

小智 24

我正在将 typescript 升级到,4.7.4并通过升级ts-loader到9.3.1.

  • 这需要我更新到 webpack 5,不幸的是,这暂时导致了很多其他问题 (3认同)

A J*_*lay 6

尝试降级到 typescript@4.6.x。如果在未安装的情况下出现此问题,则可能需要执行此操作ts-node。