TypeScript-实用程序方法中的错误

时间:2019-07-19 09:42:26

标签: javascript reactjs typescript interface

我有以下实用程序方法。该参数带有两个参数inputValueselectOptions

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)
  1. trim上我得到了一个:
Property 'trim' does not exist on type 'SelectType'.ts(2339)

任何人都知道如何使这两个错误消失。我的意思是,由于参数是确切的类型,所以我唯一的选择是将它们都转换为任意参数吗?

1 个答案:

答案 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;

您应该考虑重命名变量。命名有点令人困惑;)