Типографский Неожиданный идентификатор

#node.js #typescript

Вопрос:

Я мой код похож на приведенное ниже, но я не мог работать со своей функцией из-за неожиданной ошибки идентификатора.

 type List= Folder[];
type Folder = {
  id:string,
  name:string
  files:File[]
}
type File ={
  id:string,
  name:string
}

const listA:List = [
  {
    id: '1',
    name: 'Folder 1',
    files: [
      { id: '2', name: 'File 1' },
      { id: '3', name: 'File 2' },
      { id: '4', name: 'File 3' },
      { id: '5', name: 'File 4' },
    ],
  },
  {
    id: '6',
    name: 'Folder 2',
    files: [{ id: '7', name: 'File 5' }],
  },
]

export default function move(list: List,source: string, destination: string): List {
  //throw new Error('Not implemented');
  return list;
}
move(listA,"4","6");


 

Когда я запускаю свой код, отображается эта ошибка:

 type List= Folder[];
     ^^^^
SyntaxError: Unexpected identifier
[90m    at Object.compileFunction (node:vm:352:18)[39m
[90m    at wrapSafe (node:internal/modules/cjs/loader:1031:15)[39m
[90m    at Module._compile (node:internal/modules/cjs/loader:1065:27)[39m
[90m    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)[39m
[90m    at Module.load (node:internal/modules/cjs/loader:981:32)[39m
[90m    at Function.Module._load (node:internal/modules/cjs/loader:822:12)[39m
[90m    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)[39m
[90m    at node:internal/main/run_main_module:17:47[39m
 

Можете ли вы объяснить мне, почему я получаю эту ошибку и есть ли способ ее исправить

Комментарии:

1. также попробуйте сделать следующее: введите Список = Массив<Папка>

2. Также попробовал это, список и папка. Можете ли вы проверить мое объявление типа на наличие списка, правильно ли это?

Ответ №1:

Похоже, вы забыли скомпилировать файл и пытаетесь запустить .ts файл вместо полученного .js файла.

Если вы хотите сделать это вручную:

tsc <your-file>.ts amp;amp; node <your-file>.js

Тем не менее, я рекомендую использовать ts-узел, позволяющий вам просто запускать:

ts-node <your-file>.ts

Комментарии:

1. Я уже использую ручной метод для запуска своего кода на узле. Я тоже только что попробовал версию ts-узла, но это не помогло. 🙁

2. Можете ли вы попробовать запустить мой код на своем компьютере?

3. Да, отлично работает на моей машине, а также здесь: codesandbox.io/s/typescript-node-forked-tm3l9

4. Я вижу, так что код в порядке, вероятно, это вызвано проблемой в моей машине.

5. У вас есть .tsconfig досье? Возможно, это вызвано какой-то неправильной конфигурацией.