> Как задать значение по умолчанию для defineProps во Vue с TypeScript (Vue.js)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Библио-Глобус

Стек: Vue.js

> Пример ответа

В Vue 3 с TypeScript значение по умолчанию для defineProps задаётся с помощью опции default в объекте свойства. Есть два основных подхода:

  1. Через объект с типом (рекомендуемый):
TYPESCRIPT
interface Props {
title?: string;
count?: number;
items?: string[];
}
const props = withDefaults(defineProps<Props>(), {
title: 'Default Title',
count: 0,
items: () => [] // для массивов/объектов используйте фабричную функцию
});
  1. Через runtime-декларацию:
TYPESCRIPT
const props = defineProps({
title: {
type: String,
default: 'Default Title'
},
count: {
type: Number,
default: 0
},
items: {
type: Array as PropType<string[]>,
default: () => []
}
});

Первый способ предпочтительнее в TypeScript-проектах, так как обеспечивает полную типизацию. withDefaults автоматически убирает ? у опциональных полей, делая их обязательными с дефолтными значениями. Для ссылочных типов (массивы, объекты) обязательно используйте фабричную функцию () => ..., чтобы избежать мутаций между экземплярами.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью