我遇到以下错误 ““字符串 | 未定义”类型的参数不可分配给类型的参数” 我不知道如何解决该错误..这是我的代码
export interface IDropDown {
label: string;
value: string;
}
export enum BOOKING_TYPE {
FC = 'FC',
LC = 'LC',
TUFFING = 'TUFFING',
}
export interface IImportBookingData {
booking_type: IDropDown | null;
}
let bookingData: IImportBookingData;
const iscl = [BOOKING_TYPE.LC, BOOKING_TYPE.TUFFING].indexOf(bookingData?.booking_type?.value) !== -1;
console.log(iscl)
代码链接
有什么想法吗?
类型
booking_type
定义为 IDropDown
。但是,稍后您将访问 value
内的 booking_type
的 indexOf
属性。
这里的
value
是string
,会显示类型错误。为了克服这个问题,您需要对值进行类型转换。
const iscl = [BOOKING_TYPE.LC, BOOKING_TYPE.TUFFING]
.indexOf((bookingData?.booking_type?.value) as BOOKING_TYPE) !== -1;
这里
as BOOKING_TYPE
将处理类型转换错误。