Ошибка Intellij Typescript для интерфейса: ошибка синтаксиса: неожиданная идентификация

#javascript #typescript #intellij-idea #syntax #interface

#javascript #typescript #intellij-idea #синтаксис #интерфейс

Вопрос:

Я пытаюсь выполнить простой тест интерфейса. Код выглядит следующим образом:

 interface TestInterface {
    id: number;
    text: string;
}

const testInterfaceImplementation: TestInterface = {
    id: 1,
    text: 'sample text'
};

console.log(testInterfaceImplementation.text);
  

Когда я запускаю этот код с Node.js конфигурация Я получаю эту ошибку:

 interface TestInterface {
          ^^^^^^^^^^^^^

SyntaxError: Unexpected identifier
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
  

Когда я запускаю код без этого интерфейса, он работает нормально:

 const testInterfaceImplementation = {
    id: 1,
    text: 'sample text'
};

console.log(testInterfaceImplementation.text);
  

В чем проблема? Я также пытался переместить интерфейс в другой файл .ts, но ошибка все еще возникает.

файл tsconfig.json:

 {
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "sourceMap": true
  },
  "exclude": [
    "node_modules"
  ]
}
  

run_configuration

Ответ №1:

Вы не можете запустить код Typescript, передав его в Node.js непосредственно, Node.js не предоставляет встроенную поддержку для выполнения Typescript. Код должен быть либо скомпилирован «на лету», либо предварительно скомпилирован. вот несколько рецептов:

Для запуска выбранного файла TypeScript с использованием ts-node:

  • Установите ts-узел с помощью npm i ts-node .
  • Создайте новый Node.js запуск / отладка конфигурации.
  • Добавить --require ts-node/register в поле параметров узла.
  • В поле файла JavaScript добавьте $FilePathRelativeToProjectRoot$ .
  • Сохраните конфигурацию.
  • Используйте его для запуска (или отладки) файла, который в данный момент открыт в редакторе или выбран в представлении проекта. Вы можете сделать это с помощью значков на панели навигации или выполнить…Экшен.

Если вам нужно передать какие-либо дополнительные параметры в ts-node (например --project tsconfig.json ), вы можете добавить их в поле параметров приложения в конфигурации запуска / отладки.

Для компиляции приложения с помощью TypeScript и запуска выбранного файла TypeScript

  • Создайте Node.js запуск / отладка конфигурации.
  • В разделе Перед запуском нажмите Добавить и выберите скомпилировать TypeScript.
  • Выберите tsconfig.json .
  • В поле Файл JavaScript вам нужно выбрать путь к скомпилированному .js файлу.
  • Если скомпилированный JavaScript находится рядом с его исходным кодом, добавьте $FileRelativeDir$/$FileNameWithoutExtension$.js
  • Если файлы сохраняются в выходной папке (с сохранением структуры папок), добавьте имя папки перед шаблоном, например build/$FileRelativeDir$/$FileNameWithoutExtension$.js
  • Сохраните конфигурацию.
  • Используйте его для запуска (или отладки) файла, который в данный момент открыт в редакторе или выбран в представлении проекта.