Skip to content

Instantly share code, notes, and snippets.

@wobsoriano
Last active December 8, 2022 01:05
Show Gist options
  • Save wobsoriano/3d21b2c2b7204077a12975bddc84ef20 to your computer and use it in GitHub Desktop.
Save wobsoriano/3d21b2c2b7204077a12975bddc84ef20 to your computer and use it in GitHub Desktop.
Extract Vue Component Types
import { AllowedComponentProps, Component, defineComponent, VNodeProps } from 'vue'
export type ExtractComponentProps<TComponent> =
TComponent extends new () => {
$props: infer P;
}
? Omit<P, keyof VNodeProps | keyof AllowedComponentProps>
: never;
const TestComponent = defineComponent({
props: {
disabled: {
type: Boolean,
},
},
});
type Props = ExtractComponentProps<typeof TestComponent>
// type Props = {
// disabled?: boolean | undefined;
// }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment