Перейти к содержанию

Типы утилит

Информация

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

PropType<T>

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

MaybeRef<T>

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

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

MaybeRefOrGetter<T>

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

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

ExtractPropTypes<T>

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

Для извлечения публичных пропсов, т. е. пропсов, которые разрешено передавать родителю, используйте 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>

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

  • Поддерживается только в 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. Подробнее см. в главе Расширение глобальных свойств.

Смотрите также

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

Типы утилит