ota-meshi / typescript-eslint-parser-for-extra-files

An experimental ESLint custom parser for Vue, Svelte, and Astro for use with TypeScript. It provides type information in combination with each framework's ESLint custom parser.
MIT License
43 stars 1 forks source link

`typeof VueComponent` being inferred as `any` #81

Open n0099 opened 9 months ago

n0099 commented 9 months ago

Before You File a Bug Report Please Confirm You Have Done The Following...

What version of ESLint are you using?

8.56.0

What version of typescript-eslint-parser-for-extra-files are you using?

What did you do?

Configuration https://github.com/n0099/open-tbm/blob/3ac89945c462f35f5400bec45fa9e4e1c26622f3/fe/.eslintrc.cjs#L485 ```js parserOptions: { project: ['./tsconfig.json', './tsconfig.node.json'], tsconfigRootDir: __dirname, }, overrides: [{ // https://stackoverflow.com/questions/57107800/eslint-disable-extends-in-override files: '*.ts', parser: 'typescript-eslint-parser-for-extra-files', settings: { 'import/resolver': { typescript: true } }, }, { files: '*.vue', parser: 'vue-eslint-parser', parserOptions: { parser: 'typescript-eslint-parser-for-extra-files', project: ['./tsconfig.json', './tsconfig.node.json'], tsconfigRootDir: __dirname, }, ```

https://github.com/n0099/open-tbm/blob/3ac89945c462f35f5400bec45fa9e4e1c26622f3/fe/src/views/Post.vue#L100

const queryFormRef = ref<typeof QueryForm>();
// ...
    switch (queryFormRef.value?.getCurrentQueryType()) {
            ^^^^^^^^^^^^
// Unsafe call of an `any` typed value.(@typescript-eslint/no-unsafe-call)

What did you expect to happen?

Not reporting since the typing of typeof VueComponent is correctly inferred: image

What actually happened?

typeof VueComponent being inferred as any

Link to GitHub Repo with Minimal Reproducible Example

https://github.com/n0099/open-tbm/blob/3ac89945c462f35f5400bec45fa9e4e1c26622f3/fe

Additional comments

No response