#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"
]
}
Ответ №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
- Сохраните конфигурацию.
- Используйте его для запуска (или отладки) файла, который в данный момент открыт в редакторе или выбран в представлении проекта.