Closed falco467 closed 2 weeks ago
Thank you for posting this issue.
Hmm... The parser used by this plugin is not designed to handle JSDoc type information well.
If that doesn't work, I recommend using TypeScript in your .svelte
scripts too.
@ota-meshi If I understand it right when I use parserOptions: parser: typescript-eslint-parser, should the svelte-parser not forward all JavaScript code to the typescript-eslint parser? Because it handles JSDoc Type Information perfectly well. So svelte-parser would not have to parse type information - it just needs to forward the comment-tokens as they are in the source code to typescript-eslint-parser, their parser will interpret the Type information from the comment-tokens.
I'm working with a big code-base which opted for JS with JSDoc Typing (like the svelte team did for the whole svelte code base and many other projects are too) - a rewrite to typescript is not a viable option for our an many other code bases.
Pull requests are welcome.
@ota-meshi after trying to solve it, it seems this needs to be solved upstream in the svelte-eslint-parser. I migrated the issue to their repo.
Before You File a Bug Report Please Confirm You Have Done The Following...
What version of ESLint are you using?
9.3.0
What version of
eslint-plugin-svelte
are you using?2.39.0
What did you do?
Configuration
``` import eslint from '@eslint/js' import globals from 'globals' import tsEslint from 'typescript-eslint' import epSvelte from 'eslint-plugin-svelte' import svelteParser from 'svelte-eslint-parser' export default [ eslint.configs.recommended, ...tsEslint.configs.strictTypeChecked, ...tsEslint.configs.stylisticTypeChecked, ...epSvelte.configs['flat/recommended'], { languageOptions: { parser: tsEslint.parser, parserOptions: { project: true, programs: false, extraFileExtensions: ['.astro','.svelte'] }, globals: { ...globals.browser } }, }, { files: ['**/*.svelte'], languageOptions: { parser: svelteParser, parserOptions: { parser: tsEslint.parser, } }, }, ] ```While both .svelte and .js files are scanned by ESLint the same function yields different results:
npx eslint src
What did you expect to happen?
I expected the same code to produce the same warnings, irrespective of appearing in a .svelte or .js file.
What actually happened?
It seems like the typescript-eslint parser cannot parse type information from the code in the .svelte files. Maybe the svelte-parser strips JSDoc comments from the code before forwarding it to the typescript parser?
Link to GitHub Repo with Minimal Reproducible Example
https://github.com/falco467/svelte-jsdoc-typescript-example
Additional comments
No response