提问人:user5711656 提问时间:11/15/2023 最后编辑:user5711656 更新时间:11/15/2023 访问量:67
收到错误“字符串类型为”参数 |undefined' 不能分配给 type 的参数”
getting error "Argument of type 'string | undefined' is not assignable to parameter of type"
问:
我收到以下错误“字符串类型的参数 |undefined' 不可分配给类型的参数“我不知道如何解决该错误。这是我的代码
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)
code 链接
任何想法 ?
答:
0赞
Jithil P Ponnan
11/15/2023
#1
类型定义为 。但是,后来您正在访问内部的道具。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
0赞
KanhaJi
11/15/2023
#2
export enum BOOKING_TYPE {
FC = 'enumFC',
LC = 'LC',
TUFFING = 'TUFFING',
}
export interface IDropDown {
label: string;
value: BOOKING_TYPE; // value should be of type BOOKING_TYPE
}
export interface IImportBookingData {
booking_type: IDropDown;
}
// assing value first
let bookingData: IImportBookingData = {
booking_type:
{label:"hello", value: 'LC'}
};
const iscl = [BOOKING_TYPE.LC, BOOKING_TYPE.TUFFING]
.indexOf(bookingData.booking_type.value) !== -1;
console.log(iscl)
还要检查此解决方案
// export enum BOOKING_TYPE {
// FC = 'enumFC',
// LC = 'LC',
// TUFFING = 'TUFFING',
// }
export type BOOKING_TYPE = "enumFC" | "LC" | "TUFFING";
export interface IDropDown {
label: string;
value: BOOKING_TYPE;
}
export interface IImportBookingData {
booking_type: IDropDown;
}
// assing value first
let bookingData: IImportBookingData = {
booking_type:
{label:"hello", value: 'LC'}
};
// const iscl = [BOOKING_TYPE.LC, BOOKING_TYPE.TUFFING]
// .indexOf(bookingData.booking_type.value) !== -1;
const iscl = ["LC", "TUFFING"].indexOf(bookingData.booking_type.value) !== -1;
console.log(iscl)
希望这能解决您的问题。
评论