Typescript类型检查错误如何在React中修复

时间:2020-05-12 09:46:47

标签: javascript reactjs typescript

我有以下代码:

print(fn({"C": 1.0, "gamma": 0.1}))

我得到的错误是:

输入'Jobtitles_jobTitles |未定义”无法分配给类型 '未知[]'。无法将类型'undefined'分配给类型'unknown []'。

谁能解释我为什么会收到错误消息?

1 个答案:

答案 0 :(得分:0)

似乎typescript希望您传递某种类型的变量,其数据类型不是undefined。问题似乎与

有关

options = {data?.jobTitles}

本质上,它将检查数据中的关键“ jobTitles”并将其内容分配给选项(如果存在),否则分配undefined(在这种情况下不正确)

const [fetchJobTitlesCall, { data }] = useLazyQuery<Jobtitles, JobtitlesVariables>(JobTitlesQuery)
useEffect(() => {
    fetchJobTitlesCall({ variables: { keyword: 'Dev' } })
}, [fetchJobTitlesCall, data])

return (
            <Autocomplete
              onChange={(event, value) => dispatchJobTitlesFilter(value)}
              multiple
              id="tags-outlined"
              options={data.jobTitles ? data.jobTitles : {}} // Modified code
              getOptionLabel={option => option.name + ` (${option.totalApplicants})`} // this should be automatically fixed
              filterSelectedOptions
              renderInput={params => (
                <TextField
                  {...params}
                  onChange={event => fetchJobTitles(event.target.value)}
                  variant="outlined"
                  label="Search Job Title"
                  placeholder="Search Job Title"
                />
              )}
            />
)