Types delle Utility.
INFO
Questa pagina elenca solo alcuni tipi di utilità comunemente utilizzati che potrebbero necessitare di spiegazioni per il loro utilizzo. Per una lista completa dei tipi esportati, consulta il codice sorgente.
PropType<T>
Viene utilizzato per annotare una prop con tipi più avanzati quando si utilizzano dichiarazioni di prop runtime.
Esempio
tsimport type { PropType } from 'vue' interface Book { title: string author: string year: number } export default { props: { book: { // fornisce un type più specifico rispetto a `Object` type: Object as PropType<Book>, required: true } } }
Guarda anche Guida - Tipizzare le Props dei Componenti
MaybeRef<T>
Alias per T | Ref<T>
. Utile per annotare gli argomenti dei Composables.
- Supportato solo dalla versione 3.3+.
MaybeRefOrGetter<T>
Alias per T | Ref<T> | (() => T)
. Utile per annotare gli argomenti dei Composables.
- Supportato solo dalla versione 3.3+.
ExtractPropTypes<T>
Estrae i type delle prop dall'oggetto delle opzioni delle prop a runtime. I tipi estratti sono interni - ovvero le props risolte ricevute dal componente. Ciò significa che le props booleane e le props con valori predefiniti sono sempre definite, anche se non sono richieste.
Per estrarre le props esterne, ovvero le props che il componente genitore è autorizzato a passare, utilizza ExtractPublicPropTypes
.
Esempio
tsconst propsOptions = { foo: String, bar: Boolean, baz: { type: Number, required: true }, qux: { type: Number, default: 1 } } as const type Props = ExtractPropTypes<typeof propsOptions> // { // foo?: string, // bar: boolean, // baz: number, // qux: number // }
ExtractPublicPropTypes<T>
Estrae i type delle prop dall'oggetto delle opzioni delle prop a runtime. I tipi estratti sono rivolti all'esterno - ovvero le props che il componente genitore è autorizzato a passare.
Esempio
tsconst propsOptions = { foo: String, bar: Boolean, baz: { type: Number, required: true }, qux: { type: Number, default: 1 } } as const type Props = ExtractPublicPropTypes<typeof propsOptions> // { // foo?: string, // bar?: boolean, // baz: number, // qux?: number // }
ComponentCustomProperties
Viene utilizzato per estendere il type dell'istanza del componente al fine di supportare proprietà globali personalizzate.
Esempio
tsimport axios from 'axios' declare module 'vue' { interface ComponentCustomProperties { $http: typeof axios $translate: (key: string) => string } }
TIP
Le estensioni devono essere inserite in un file di modulo
.ts
o.d.ts
. Per ulteriori dettagli, consulta Posizionamento delle Estensioni dei Type.Guarda anche Guide - Augmenting Global Properties
ComponentCustomOptions
Viene utilizzata per estendere il type delle opzioni del componente al fine di supportare opzioni personalizzate.
Esempio
tsimport { Route } from 'vue-router' declare module 'vue' { interface ComponentCustomOptions { beforeRouteEnter?(to: any, from: any, next: () => void): void } }
TIP
Le estensioni devono essere inserite in un file di modulo
.ts
o.d.ts
. Per ulteriori dettagli, consulta Posizionamento delle Estensioni dei Type.Guarda anche Guide - Augmenting Custom Options
ComponentCustomProps
Viene utilizzata per estendere le proprietà consentite TSX al fine di utilizzare proprietà non dichiarate negli elementi TSX.
Esempio
tsdeclare module 'vue' { interface ComponentCustomProps { hello?: string } } export {}
tsx// ora funziona anche se hello è una prop NON dichiarata <MyComponent hello="world" />
TIP
Le estensioni devono essere inserite in un file di modulo
.ts
o.d.ts
. Per ulteriori dettagli, consulta Posizionamento delle Estensioni dei Type.
CSSProperties
Viene utilizzata per estendere i valori consentiti nei binding delle proprietà di stile.
Esempio
Permette qualsiasi proprietà CSS personalizzata.
tsdeclare module 'vue' { interface CSSProperties { [key: `--${string}`]: string } }
tsx<div style={ { '--bg-color': 'blue' } }>
html<div :style="{ '--bg-color': 'blue' }"></div>
TIP
Le estensioni devono essere inserite in un file di modulo .ts
o .d.ts
. Per ulteriori dettagli, consulta Posizionamento delle Estensioni dei Type.
Vedi anche
I tag <style>
dei SFC supportano il collegamento dei valori CSS allo stato dinamico del componente utilizzando la funzione CSS v-bind
. Questo consente di utilizzare proprietà personalizzate senza estendere i type.