Eu defini os seguintes tipos
export interface LanguageEditInfoDto {
canEdit: boolean;
label: string;
useDudenLang: boolean;
}
export type UILanguageEditInfoDto = LanguageEditInfoDto & {
isFormValid: boolean;
};
e defini a seguinte função:
function setLanguages(languages: Record<string, LanguageEditInfoDto>) {
const langState: Record<string, UILanguageEditInfoDto> = {};
for (const langCode in languages) {
langState[langCode] = {
isFormValid: true,
...languages[langCode],
};
}
}
Por que recebo o seguinte erro langState[langCode]
? E como resolver isso?
TS2322: Type
{ canEdit?: boolean | undefined; label?: string | undefined; useDudenLang?: boolean | undefined; isFormValid: true; }
is not assignable to type UILanguageEditInfoDto
Type
{ canEdit?: boolean | undefined; label?: string | undefined; useDudenLang?: boolean | undefined; isFormValid: true; }
is not assignable to type LanguageEditInfoDto
De acordo com a definição, nenhum dos atributos é opcional. Portanto, a afirmação está IMHO errada.
Você
noUncheckedIndexedAccess
habilitou em seu projeto. Você pode corrigir seu problema afirmando non null :Ou você pode manter a digitação usando
Object.entries