Ошибка компиляции TypeScript: ошибка TS5024: для параметра компилятора «цель» требуется значение строки типа

Я настраиваю среду для работы с WSL. Я хочу работать с файлами машинописных сценариев, но у меня возникла проблема с выполнением сценария в моем проекте.

Если я выполню следующую команду ts-node -e 'console.info("hello")' вне каталога моего проекта, она сработает, но если я зайду в свой проект и выполню ту же команду, я получу следующую ошибку: TSError: ⨯ Unable to compile TypeScript: error TS5024: Compiler option 'target' requires a value of type string.

Вот мой файл package.json:

{
  "license": "ISC",
  "scripts": {
    "lint:fix": "prettier */*.js \"*/**/*{.js,.ts}\" -w",
    "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check"
  },
  "dependencies": {
    "@coral-xyz/anchor": "^0.30.1"
  },
  "devDependencies": {
    "@types/bn.js": "^5.1.0",
    "@types/chai": "^4.3.0",
    "@types/mocha": "^9.0.0",
    "@types/node": "^20.14.8",
    "chai": "^4.3.4",
    "mocha": "^9.0.3",
    "prettier": "^2.6.2",
    "ts-mocha": "^10.0.0",
    "ts-node": "^10.9.2",
    "tslib": "^2.6.3",
    "typescript": "^5.5.2"
  }
}

Вот мой файл tsconfig.json:

{
  "compilerOptions": {
    "types": ["mocha", "chai", "node"],
    "typeRoots": ["./node_modules/@types"],
    "lib": ["es2015", "dom"],
    "module": "commonjs",
    "target": ["es6"],
    "esModuleInterop": true
  }
}

Честно говоря, это что-то новое для машинописного текста и настройки среды, но я следовал онлайн-руководству по установке. Моя версия узла — 20.15.0, которую я установил, выполнив команду nvm.

Обновлено: я также выполнил эти команды:

# Locally in your project.
npm install -D typescript
npm install -D ts-node

# Or globally with TypeScript.
npm install -g typescript
npm install -g ts-node

# Depending on configuration, you may also need these
npm install -D tslib @types/node

🤔 А знаете ли вы, что...
Node.js обладает большой активной сообществом разработчиков и поддерживается множеством компаний.


56
1

Ответ:

Решено

Вам нужно указать target как строку:

"target": "es6",