我有以下实用程序方法。该参数带有两个参数inputValue
和selectOptions
。
export interface SelectType {
label: string;
value: string;
}
const checkCaseSensitiveSelectUtil = (inputValue: SelectType, selectOptions: SelectType[]): any => {
const exactValueExists = selectOptions.find(input => input.value === inputValue);
const valueIsNotEmpty = inputValue.trim().length;
return !exactValueExists && valueIsNotEmpty;
};
export default checkCaseSensitiveSelectUtil;
但是出现以下错误:
1.在input.value === inputValue
上,我得到以下信息:
(parameter) input: SelectType
This condition will always return 'false' since the types 'string' and 'SelectType' have no overlap.ts(2367)
trim
上我得到了一个:Property 'trim' does not exist on type 'SelectType'.ts(2339)
任何人都知道如何使这两个错误消失。我的意思是,由于参数是确切的类型,所以我唯一的选择是将它们都转换为任意参数吗?
答案 0 :(得分:1)
1。
您正在比较input.value
(类型为字符串)和inputValue
(类型为SelectType
)。一种可能的解决方案是将input
的值与inputValue
的值进行比较。
selectOptions.find(input => input.value === inputValue.value);
2。
const valueIsNotEmpty = inputValue.trim().length;
由于inputValue
不是值,而是SelectType
的实例,所以不能只修剪它。
尝试获取值(字符串)
const valueIsNotEmpty = inputValue.value.trim().length;
您应该考虑重命名变量。命名有点令人困惑;)