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

Типы утилит ​

Информация

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

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. Это позволяет создавать пользовательские свойства без расширения типа.

Типы утилит