Language-tools: VS Code отображает ошибку в аннотации типа

Созданный на 20 мая 2020  ·  5Комментарии  ·  Источник: sveltejs/language-tools

У меня установлено расширение Svelte Beta, и я перезапустил языковой сервер. Мой svelte.config.js :

const sveltePreprocess = require('svelte-preprocess');

module.exports = {
    preprocess: sveltePreprocess(),
};

Однако расширение, похоже, не помогает VS Code понять, что мой код - это Typescript, поскольку он дает ошибку при аннотации типа:

Аннотации типов могут использоваться только в файлах TypeScript. javascript

Screen Shot 2020-05-19 at 8 24 24 PM

Также интересно, если я изменю lang="typescript" на type="text/typescript" , цвета синтаксиса полностью исчезнут, как и ошибка:

Screen Shot 2020-05-19 at 8 26 22 PM

Система (пожалуйста, заполните следующую информацию):

  • ОС: macOS Catalina 10.15.4
  • IDE: VS Code
  • Плагин: Svelte Beta

Самый полезный комментарий

А, значит, проблема заключалась в том, что у меня в настройках VS Code "User" было следующее:

  "files.associations": {
    "*.svelte": "html"
  },

Теперь, когда я его удалил, вроде все работает нормально.

Все 5 Комментарий

Можете ли вы опубликовать здесь код целого файла или пример репозитория? Я не могу это воспроизвести. Не нужно включать весь скрипт, но нужны другие теги верхнего уровня

Вот минимальное воспроизведение:

<script lang="typescript">
    let countExcludingUser: number = 0;
</script>

<p>Hi</p>

Screen Shot 2020-05-19 at 8 53 22 PM

Я отключил все расширения, кроме Svelte Beta, и перезапустил VS Code, но безуспешно.

Мне удалось воспроизвести только один раз, и после этого не повезло. Можете ли вы попробовать еще раз на последней сборке 99.0.22? В этой версии есть некоторые обновления о предварительной обработке. Если он все еще сохраняется, можете ли вы сделать репозиторий для примера?

Из вашего описания кажется, что SveltePlugin.ts действительно требует предварительной обработки с помощью Typescript, потому что нет синтаксической ошибки Svelte, такой как "неожиданный токен". С другой стороны, TypescriptPlugin.ts - по какой-то причине - не распознает, что вы используете Typescript, но вместо этого думает, что это Javascript. Действительно странно .. Пример репо наверняка поможет.

А, значит, проблема заключалась в том, что у меня в настройках VS Code "User" было следующее:

  "files.associations": {
    "*.svelte": "html"
  },

Теперь, когда я его удалил, вроде все работает нормально.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги