-
-
Notifications
You must be signed in to change notification settings - Fork 8.4k
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
Vue 3 + Typescript: "setup" function breaks emits typing #5343
Comments
I think this is about the same TS limitation we have with props validator functions: they either need to be arrow functions or have emits: {
// arrow function
event: (): boolean => { return true; }
// explicit this
event(this: undefined): boolean { return true; }
}, I'll submit a change to the docs adding a similar note like we have for props validators and will close the issue afterwards. We should also consider to add an eslint rule for this (in case it doesn't exist yet). |
Thx for the help. Both fixes worked. ESLint rule would be great. It should probably replace this ESLint core rule - "object-shorthand". |
Can you open an issue on vuejs eslint repo if there isn't one yet? |
Version
3.0.0
Reproduction link
github.com
Steps to reproduce
OR
open Sample1.ts and Sample2.ts in Visual Studio Code.
What is expected?
I expect to see two errors:
One from
in Sample1.ts
And another one from
in Sample2.ts
What is actually happening?
I see only one error - from Sample2.ts
In Sample2 defineComponent correctly determines emits type as:
In Sample1 it uses EmitsOptions type because of _props and { emit } args.
If you remove args, emits type is determined correctly, but in this case you will not have access to emit function which is not suitable.
The text was updated successfully, but these errors were encountered: