Maison > Questions et réponses > le corps du texte
Dans Vue 3, je crée une fonction qui acceptera une instance d'un composant et une propriété à transmettre. J'utilise également TypeScript et je me demande si je peux saisir ces paramètres. Par exemple, la fonction ressemblerait à :
const example = (component, props) => { // };
Ma question est donc :
P粉9174060092024-01-06 09:36:48
Vous pouvez utiliser de nombreuses fonctionnalités fournies par TypeScript et Component
类型来实现正确的键入,创建一个扩展 Component
的通用类型,然后推断组件选项/props 使用 infer
in vue, les rendant facultatives en utilisant Partial :
import type { Component } from "vue"; function example<T extends Component> (Comp: T, props: T extends Component<infer P> ? Partial<P> : never) { //.... } example(Alert, { variant: "success"})
Remarque : Cela déduit également les propriétés et les utilitaires d'instance de composant