我定义了以下类型
export interface LanguageEditInfoDto {
canEdit: boolean;
label: string;
useDudenLang: boolean;
}
export type UILanguageEditInfoDto = LanguageEditInfoDto & {
isFormValid: boolean;
};
我定义了以下函数:
function setLanguages(languages: Record<string, LanguageEditInfoDto>) {
const langState: Record<string, UILanguageEditInfoDto> = {};
for (const langCode in languages) {
langState[langCode] = {
isFormValid: true,
...languages[langCode],
};
}
}
为什么我会收到以下错误langState[langCode]
?以及如何解决?
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
根据定义,没有一个属性是可选的。因此,恕我直言,这个断言是错误的。
您已
noUncheckedIndexedAccess
在项目中启用。您可以通过断言 non null 来解决您的问题:或者你可以通过使用来保持类型安全
Object.entries