Skip to content

TypeScript utility typy ​

Poznámka

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í komponenty

MaybeRef<T> ​

  • Podporováno až od verze 3.3+

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

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> ​

  • Podporováno až od verze 3.3+

Extrahuje typy vlastností (props) z objektu s runtime props. Extrahované typy jsou veřejně orientované - tj. vlastnosti, 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 obohacení typu instance komponenty pro podporu custom globálních vlastností.

ComponentCustomOptions ​

Používá se k obohacení typu vlastností komponenty pro podporu custom vlastností.

ComponentCustomProps ​

Používá se k obohacení 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

    Obohacení musí být umístěno v souboru modulu .ts nebo .d.ts. Pro více informací se podívejte na obohacování globálních vlastností.

CSSProperties ​

Používá se k obohacení 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

Obohacení musí být umístěno v souboru modulu .ts nebo .d.ts. Pro více informací se podívejte na obohacová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 obohacení typů.

TypeScript utility typy has loaded