Skip to content

Вспомогательные типы

Информация

На этой странице перечислены лишь некоторые часто используемые вспомогательные типы, применение которых может потребовать объяснений по их использованию. Полный список экспортируемых типов можно найти в исходном коде.

PropType<T>

Используется для аннотации входного параметра с более сложными типами по сравнению с runtime определением входных параметров

MaybeRef<T>

Псевдоним для T | Ref<T>. Полезно для аннотирования аргументов Composables.

  • Поддерживается только в версиях 3.3+.

MaybeRefOrGetter<T>

Псевдоним для T | Ref<T> | (() => T). Полезно для аннотирования аргументов Composables.

  • Поддерживается только в версиях 3.3+.

ExtractPropTypes<T>

Извлекает типы значений из объекта входных параметров во время выполнения. Извлеченные типы являются внутренними, то есть разрешенными входными параметрами, полученными компонентом. Это означает, что булевы входные параметры и входные параметры со значениями по умолчанию всегда определены, даже если они не нужны.

Для извлечения общедоступных входных параметров, то есть входных параметров, которые разрешено передать родителю, используйте ExtractPublicPropTypes.

  • Пример

    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>

Извлечение типов входных параметров из объекта runtime props options. Извлеченные типы являются публичными — то есть входными параметрами, которые разрешено передавать родителю.

  • Поддерживается только в версиях 3.3+.

  • Пример

    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

Используется для расширения типа экземпляра компонента с целью поддержки пользовательских глобальных свойств.

ComponentCustomOptions

Используется для расширения типа опций компонента с целью поддержки пользовательских опций.

ComponentCustomProps

Используется для расширения разрешенных входных параметров в TSX с целью использования недекларированных входных параметров на элементах TSX.

  • Пример

    ts
    declare module 'vue' {
      interface ComponentCustomProps {
        hello?: string
      }
    }
    
    export {}
    tsx
    // теперь работает, даже если hello не является объявленным входным параметром
    <MyComponent hello="world" />

    Совет

    Дополнения должны быть размещены в файле модуля .ts или .d.ts. Подробнее об этом см. в разделе Расширение глобальных свойств.

CSSProperties

Используется для расширения допустимых значений в привязках свойств стиля.

  • Пример

    Разрешить любое пользовательское CSS-свойство

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

    Совет

    Дополнения должны быть размещены в файле модуля .ts или .d.ts. Подробнее об этом см. в разделе Расширение глобальных свойств.

    См. также

    Секции однофайловых компонентов <style> поддерживают привязку CSS-значений к динамическому состоянию компонента с помощью CSS-функции v-bind. Это позволяет использовать пользовательские свойства без дополнения типа.

Вспомогательные типыУже загружено