Свойство "текст" не существует для типа "Файл" - PullRequest
0 голосов
/ 18 июня 2020

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

17  const onFileDrop =
18    (files: File[]) => {
19      files.forEach(file => file.text().then(content => console.log(content)));
20    },
21  );

Код VS не показывает никаких ошибок, и я могу правильно получить доступ к интерфейсу File, который содержит функцию text().

enter image description here введите описание изображения здесь

Однако при запуске npm start я вижу следующие ошибки:

[tsl] ERROR in {omitted}/RawCommandOutputs.tsx(19,34)
      TS2339: Property 'text' does not exist on type 'File'.


[tsl] ERROR in {omitted}/RawCommandOutputs.tsx(19,46)
      TS7006: Parameter 'content' implicitly has an 'any' type.

1 Ответ

1 голос
/ 22 июня 2020

Различие в поведении объясняется тем, что в веб-пакете и VS Code используются разные версии Typescript.

Проект зависит от Typescript версии 3.5.2. В этой версии интерфейс File не содержит функции text(). Следовательно, при запуске npm start были обнаружены вышеупомянутые ошибки.

VS Code по умолчанию использует последнюю версию Typescript (3.9.5 в моем случае), которая содержит обновленный интерфейс File.

Чтобы VS Code использовал ту же версию Typescript, что и мой проект, я добавил "typescript.tsdk": "./node_modules/typescript/lib" в мой settings.json файл. Затем я выполнил команду Select Typescript Version и выбрал опцию Use Workspace Version.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...