@oexlkinq

Почему TS выдает ошибку при задании значения по умолчанию для массива в props?

участок кода с ошибкой:
type strnum = string | number;
type datalist = { [key: strnum]: strnum }[];

const props = withDefaults(defineProps<{
    datalist?: datalist,
    id?: strnum,
    idKey?: strnum,
    valueKey?: strnum,
    placeholder?: string,
}>(), {
    datalist: [] as datalist,
    idKey: 'id',
    valueKey: 'value',
    placeholder: '',
});


ошибка:
Type 'datalist' is not assignable to type '(props: { datalist?: datalist | undefined; id?: strnum | undefined; idKey?: strnum | undefined; valueKey?: strnum | undefined; placeholder?: string | undefined; }) => datalist'.
Type '{ [key: string]: strnum; [key: number]: strnum; }[]' provides no match for the signature '(props: { datalist?: datalist | undefined; id?: strnum | undefined; idKey?: strnum | undefined; valueKey?: strnum | undefined; placeholder?: string | undefined; }): datalist'.

15 datalist: [] as datalist,

p.s. если поставить @ts-ignore для этой строчки, то всё нормально собирается и работает
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
modelair
@modelair
unsocial
const props = withDefaults(defineProps<{
    datalist?: datalist,
    id?: strnum,
    idKey?: strnum,
    valueKey?: strnum,
    placeholder?: string,
}>(), {
    datalist: () => [] as datalist,
    idKey: 'id',
    valueKey: 'value',
    placeholder: '',
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы