Estou usando o Vuetify v-date-picker
em um projeto e o código está funcionando, mas tenho um erro de TypeScript ao usar v-model
:
<v-date-picker title="Start Date" width = "200" v-model="workingDate" @click:save="newDate"/>
O erro é:
Type '{ toString: () => string; toDateString: () => string; toTimeString: () => string; toLocaleString: { (): string; (locales?: string | string[] | undefined, options?: DateTimeFormatOptions | undefined): string; (locales?: LocalesArgument, options?: DateTimeFormatOptions | undefined): string; }; ... 39 more ...; [Symbol...' is not assignable to type 'any[]'.ts(2322)
index.d.mts(2757, 13): The expected type comes from property 'modelValue' which is declared here on type '{ header?: string | undefined; style?: StyleValue | undefined; title?: string | undefined; inputMode?: "calendar" | "keyboard" | undefined; multiple?: boolean | undefined; ... 57 more ...; "onClick:save"?: (() => any) | undefined; } & Record<...>'
Carreguei uma demonstração funcional, que também mostra o erro TS, no playgound do Vuetify .
Há uma solução possível aqui , mas que precisa de acesso ao código do componente que não tenho v-date-picker
.
Parece ser um bug na v3.3. Aparentemente, o VDatePicker
modelValue
é digitado como um array, mas isso só é verdade quando amultiple
propriedade é definida. Da mesma forma, diz-se que oupdate:modelValue
evento passa um array, mas na verdade é uma data simples (semmultiple
).Usar objetos Date está correto. Não acho que haja nada que você possa fazer sobre o erro (exceto enviar um relatório de bug).