Przejdź bezpośrednio do treści

Typy narzędzi

INFO

Ta strona zawiera tylko kilka powszechnie używanych typów narzędzi, których użycie może wymagać wyjaśnienia. Aby uzyskać pełną listę eksportowanych typów, zapoznaj się z kodem źródłowym.

PropType<T>

Służy do adnotacji właściwości przy użyciu bardziej zaawansowanych typów podczas korzystania z deklaracji właściwości w czasie wykonywania.

  • Przykład

    ts
    import type { PropType } from 'vue'
    
    interface Book {
      title: string
      author: string
      year: number
    }
    
    export default {
      props: {
        book: {
          // podaj bardziej szczegółowy typ dla `Obiektu`
          type: Object as PropType<Book>,
          required: true
        }
      }
    }
  • Zobacz także Przewodnik - Typing Component Props

MaybeRef<T>

Alias ​​dla T | Ref<T>. Przydatny do adnotowania argumentów Composables.

  • Obsługiwane tylko w wersji 3.3+.

MaybeRefOrGetter<T>

Alias ​​dla T | Ref<T> | (() => T). Przydatny do adnotowania argumentów Composables.

  • Obsługiwane tylko w wersji 3.3+.

ExtractPropTypes<T>

Wyodrębnij typy rekwizytów z obiektu opcji rekwizytów środowiska wykonawczego. Wyodrębnione typy są skierowane do wewnątrz — tj. rozwiązane rekwizyty otrzymane przez komponent. Oznacza to, że rekwizyty typu boolowskiego i rekwizyty z wartościami domyślnymi są zawsze zdefiniowane, nawet jeśli nie są wymagane.

Aby wyodrębnić rekwizyty skierowane do publiczności, tj. rekwizyty, które rodzic może przekazać, użyj ExtractPublicPropTypes.

  • Przykład

    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>

Wyodrębnij typy rekwizytów z obiektu opcji rekwizytów środowiska wykonawczego. Wyodrębnione typy są publiczne - tj. rekwizyty, które rodzic może przekazać.

  • Obsługiwane tylko w wersji 3.3+.

  • Przykład

    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

Służy do rozszerzenia typu instancji komponentu o obsługę niestandardowych właściwości globalnych.

ComponentCustomOptions

Służy do rozszerzenia typu opcji komponentu o obsługę opcji niestandardowych.

ComponentCustomProps

Służy do rozszerzenia dozwolonych rekwizytów TSX w celu użycia niezadeklarowanych rekwizytów w elementach TSX.

  • Przykład

    ts
    declare module 'vue' {
      interface ComponentCustomProps {
        hello?: string
      }
    }
    
    export {}
    tsx
    // teraz działa nawet jeśli hello nie jest zadeklarowaną właściwością
    <MyComponent hello="world" />

    TIP

    Augmentacje muszą być umieszczone w pliku modułu .ts lub .d.ts. Więcej szczegółów można znaleźć w Umieszczanie rozszerzeń typu.

CSSProperties

Służy do rozszerzania dozwolonych wartości w powiązaniach właściwości stylu.

  • Przykład

    Zezwalaj na dowolną niestandardową właściwość CSS

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

TIP

Augmentacje muszą być umieszczone w pliku modułu .ts lub .d.ts. Więcej szczegółów można znaleźć w Umieszczanie rozszerzeń typu.

Zobacz także

Tagi SFC <style> obsługują łączenie wartości CSS z dynamicznym stanem komponentu za pomocą funkcji CSS v-bind. Umożliwia to niestandardowe właściwości bez rozszerzania typu.

Typy narzędziJest załadowany