Passa al contenuto

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

    ts
    import 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

    ts
    const 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

    ts
    const 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.

ComponentCustomOptions

Viene utilizzata per estendere il type delle opzioni del componente al fine di supportare opzioni personalizzate.

ComponentCustomProps

Viene utilizzata per estendere le proprietà consentite TSX al fine di utilizzare proprietà non dichiarate negli elementi TSX.

  • Esempio

    ts
    declare 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.

    ts
    declare 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.

Types delle Utility. has loaded