We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
Hello, first -> thanks for the Vue3. Its Awesome.
In my previous project I often use typescript generic. For example:
const CustomButton = defineComponent({ props: { clickRequest:Function as PropType<(r?: Promise<any>) => void>, onClick: Function as PropType<(data:any) => void> }, emits:["click"], setup(props, { emit }) { const internalClick = async () => { const data = await props.clickRequest() emit("click",data); } return () => { <button onClick={internalClick}>Action</button> } } })
This example works as expected. Problem is any type around props definition.
const CustomButton = defineComponent<T>({ props: { clickRequest:Function as PropType<(r?: Promise<T>) => void>, onClick: Function as PropType<(data:T) => void> }, emits:["click"], setup(props, { emit }) { const internalClick = async () => { const data = await props.clickRequest() emit("click",data as T); } return () => { <button onClick={internalClick}>Action</button> } } })
Thanks
The text was updated successfully, but these errors were encountered:
As work around, You can do this to provide a generic type.
const GenericComponent = <T>() => defineComponent({ // add your defination. });
Also you can declare a class component
export declare class GenericComponent<T> { // add your defination }
Sorry, something went wrong.
Since you could define a component with as many generics as you want, you will have to use a function like proposed above:
function defineGenericComponent<T, D>() { return defineComponent({ ... }) }
Remember to use the forum or the Discord chat to ask questions!
For future reference RFC to allow this
No branches or pull requests
What problem does this feature solve?
Hello, first -> thanks for the Vue3. Its Awesome.
In my previous project I often use typescript generic. For example:
This example works as expected. Problem is any type around props definition.
What does the proposed API look like?
Thanks
The text was updated successfully, but these errors were encountered: