Skip to content

Utility typy

INFO

Tato stránka vypisuje pouze několik běžně používaných utility typů, které pro své použití mohou vyžadovat vysvětlení. Pro úplný seznam exportovaných typů se podívejte do zdrojového kódu.

PropType<T>

Používá se k anotaci vlastnosti (prop) s pokročilejšími typy při použití runtime props deklarací.

  • Příklad

    ts
    import type { PropType } from 'vue'
    
    interface Book {
      title: string
      author: string
      year: number
    }
    
    export default {
      props: {
        book: {
          // poskytne konkrétnější typ k základnímu `Object`
          type: Object as PropType<Book>,
          required: true
        }
      }
    }
  • Viz také: Průvodce - Typování vlastností (props) komponent

MaybeRef<T>

Alias pro T | Ref<T>. Užitečné pro anotaci vstupních parametrů v Composables.

  • Podporováno pouze od verze 3.3+.

MaybeRefOrGetter<T>

Alias pro T | Ref<T> | (() => T). Užitečné pro anotaci vstupních parametrů v Composables.

  • Podporováno pouze od verze 3.3+.

ExtractPropTypes<T>

Extrahuje typy vlastností (props) z objektu s runtime props. Extrahované typy jsou interně orientované - tj. vyřešené vlastnosti přijaté komponentou. To znamená, že vlastnosti typu boolean a vlastnosti s výchozími hodnotami jsou vždy definovány, i když nejsou povinné.

Pro extrakci veřejně orientovaných vlastností, tj. vlastností, které může předat rodič, použijte ExtractPublicPropTypes.

  • Příklad

    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>

Extrahuje typy vlastností (props) z objektu s runtime props. veřejně orientované - tj. vlastnost, které může předat rodič.

  • Příklad

    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

Používá se k rozšíření typu instance komponenty pro podporu custom globálních vlastností.

ComponentCustomOptions

Používá se k rozšíření typu vlastností komponenty pro podporu custom vlastností.

ComponentCustomProps

Používá se k rozšíření povolených TSX vlastností (props) pro použití nedeklarovaných vlastností na prvcích TSX.

  • Příklad

    ts
    declare module 'vue' {
      interface ComponentCustomProps {
        hello?: string
      }
    }
    
    export {}
    tsx
    // nyní funguje i když hello není deklarovanou vlastností
    <MyComponent hello="world" />

    TIP

    Rozšíření musí být umístěno v souboru modulu .ts nebo .d.ts. Pro více informací se podívejte na rozšiřování globálních vlastností.

CSSProperties

Používá se k rozšíření povolených hodnot u vazeb vlastností stylů.

  • Příklad

    Povolí libovolnou custom CSS vlastnost

    ts
    declare module 'vue' {
      interface CSSProperties {
        [key: `--${string}`]: string
      }
    }
    tsx
    <div style={ { '--bg-color': 'blue' } }>
    html
    <div :style="{ '--bg-color': 'blue' }"></div>

TIP

Rozšíření musí být umístěno v souboru modulu .ts nebo .d.ts. Pro více informací se podívejte na rozšiřování globálních vlastností.

Viz také

Podpora SFC <style> tagů pro propojení hodnot CSS s dynamickým stavem komponenty pomocí CSS funkce v-bind. To umožňuje custom vlastnosti bez rozšíření typů.

Utility typy has loaded