-
-
Notifications
You must be signed in to change notification settings - Fork 431
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TS2322: Type 'number' is not assignable to type 'SSRSlot' #1599
Comments
I had the same problem and I tried to solve it by setting the The working solution for me was using the fork-ts-checker-webpack-plugin in This is how my const mix = require('laravel-mix');
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
mix.webpackConfig({
module: {
rules: [
{
test: /\.tsx?$/,
loader: 'ts-loader',
exclude: /node_modules/,
},
],
},
plugins: [new ForkTsCheckerWebpackPlugin()],
resolve: {
extensions: ['.*', '.js', '.jsx', '.vue', '.ts', '.tsx'],
},
})
.setPublicPath('./webroot')
.options({ processCssUrls: true });
mix.js('resources/js/foo.js', 'webroot/js/AssetMix')
.ts('resources/js/bar/src/main.ts', 'webroot/js/AssetMix/bar.js')
.vue({ version: 3 })
.version();
if (!mix.inProduction()) {
mix.sourceMaps();
} |
Thanks a lot for your response @antogno. The The implementation was actually more straightforward than I expected, at least for Webpack >5.92.x: const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
/* or */
import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin';
/* then */
export default function() {
return {
...
plugins: [new ForkTsCheckerWebpackPlugin()],
module: {
rules: [
{
test: /\.ts$/,
loader: 'ts-loader'
}
]
}
...
}
} The configuration example in their readme is good if you're not using ESM. |
Expected Behaviour
The error in the pic should not be shown.
Actual Behaviour
when using dynamic slot with v-for with vue components, i'm getting the following errors:
error in /home/michael/Development/app/symfony-demo-vue-bug/assets/vue/components/Parent.vue.ts 8:00:25 AM
[tsl] ERROR in /home/michael/Development/app/symfony-demo-vue-bug/assets/vue/components/Parent.vue.ts(5,93)
TS2322: Type 'number' is not assignable to type 'SSRSlot'.
error in /home/michael/Development/app/symfony-demo-vue-bug/assets/vue/components/Parent.vue.ts 8:00:25 AM
[tsl] ERROR in /home/michael/Development/app/symfony-demo-vue-bug/assets/vue/components/Parent.vue.ts(6,37)
TS2769: No overload matches this call.
The last overload gave the following error.
Argument of type '<K extends string | number | symbol>(slotName: any) => { name: any; fn: Function; }' is not assignable to parameter of type '<K extends string | number | symbol>(value: any, key: K, index: number) => VNodeChild'.
Type '{ name: any; fn: Function; }' is not assignable to type 'VNodeChild'.
`
I tried to create a vue app with the same components without webpack and it compiles without errors.
Steps to Reproduce the Problem
steps to reproduce:
The components are in
assets/vue/components
and the purpose of them is to show a list of names by using dynamic slot names.by going to http://localhost:8000/en/blog/
the names are shown correctly.
Location of a Minimal Repository that Demonstrates the Issue.
https://github.com/michaelcozzolino/symfony-demo-vue-bug
The text was updated successfully, but these errors were encountered: