typescript - نوع 'string | undefined' قابل اختصاص به نوع 'string' در قالب Angular 12 نیست
من یک رابط با چند ویژگی اختیاری دارم
export interface NavigationItem {
id: string;
title: string;
classes?: string;
badge?: {
title?: string;
translate?: string;
bg?: string;
fg?: string;
};
}
در قالب، هنگام ارسال مقدار به ویژگیهای ورودی
<span *ngIf="item?.badge" [ngStyle]="{'background-color': item?.badge?.bg,'color': item?.badge?.fg}"
[translate]="item?.badge?.translate"
class="nav-link-badge">
{{item?.badge?.title}}
</span>
این خطا میدهد
Type 'string | undefined' is not assignable to type 'string'
پاسخ شماره ۱
سعی کنید که یک رشته خالی '' اختصاص دهید اگر item?.badge?.bg یا item?.badge?.fg تعریف نشده باشد. مثلاً item?.badge?.bg || ''
شما همچنین میتوانید '' را به هر مقدار پیشفرضی که میخواهید تغییر دهید. به عنوان مثال item?.badge?.bg || 'black'
ممکن است شما نیاز داشته باشید این کار را برای item?.badge?.translate نیز انجام دهید.
<span *ngIf="item?.badge" [ngStyle]="{'background-color': item?.badge?.bg || '', 'color': item?.badge?.fg || '' }"
[translate]="item?.badge?.translate"
class="nav-link-badge">
{{item?.badge?.title}}
</span>
