出现错误“‘字符串|未定义’类型的参数不可分配给类型参数”

问题描述 投票:0回答:1

我遇到以下错误 ““字符串 | 未定义”类型的参数不可分配给类型的参数” 我不知道如何解决该错误..这是我的代码

  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)

代码链接

https://www.typescriptlang.org/play?ssl=17&ssc=1&pln=1&pc=1#code/ATCmA8AcHsCcBdgEsB29SwGYEMDGpgBJAEVmkmOgHcVgBvAWACgQAbbAI1FYC5gBneLFQBzANzMQAN2ysArqD6DhKccwC+zCDARg UcgLbAAQgHlTAaUIA5AOIB9ACoBNAoBRepOAAxAMLAALzAAOT+IQA03gAyAcEhsZHejgCqPj42tkGhqemZSUyaLGBQciio6Fh4BISEBjrwxtDQANaixNjw2F7FICAczW2q9vAAnpCKRKTklDTAAD7A+qysEsVF bKCIA63tndh8tfVlTbuqHV1rILjQKILI-Lis2QDaZpaZTm7uAHSxESZzFY7F8PD9chk7ABdH6oAAmEFMmaAFDshiILtgAPw-NGiEbjUA4mTyUAASmAAEJAsEALQARjW3hud2grFAP1Y0BEyKQj1YZOYQA

有什么想法吗?

javascript reactjs typescript javascript-objects
1个回答
0
投票

类型

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
将处理类型转换错误。

© www.soinside.com 2019 - 2024. All rights reserved.