类型“ EventTarget&HTMLSelectElement”上不存在属性“值”

时间:2019-10-03 12:16:28

标签: reactjs typescript

我有以下代码:

interface IHandleSelection {
    (value: string): any | void;
}

interface IPipeChangeEventValueToFunction {
    (handler: IHandleSelection): (event: React.ChangeEvent<HTMLSelectElement>) => void;
}

const pipeChangeEventValueToFunction: IPipeChangeEventValueToFunction = handler => event => 
    handler(event.target.value);

...
        // within a component where onSelection is a prop of type IHandleSelection
        <select
            onChange={pipeChangeEventValueToFunction(onSelection)}
        >

出现错误的地方:

  

属性'value'在'EventTarget&类型上不存在   HTMLSelectElement'

我尝试了here(及其他地方)建议的修复程序:

const pipeChangeEventValueToFunction: IPipeChangeEventValueToFunction = handler => event => {
    const test = event.target as HTMLSelectElement;
    const a = test.value;
}

但是我得到完全相同的错误(也许并不奇怪)。

对这里发生的事情有任何想法吗?看来有点打字错误。

1 个答案:

答案 0 :(得分:1)

好像您的项目中没有包含typescript/lib/lib.dom.d.ts

您可以通过更改tsconfig.json并将dom添加到compilerOptions.lib来做到这一点,如下所示:

{
  "compilerOptions": {
    ...
    "lib": ["es2017", "dom"],
    ...
   }
}

或者您可以将以下参考三斜杠指令添加到您的一个声明(*.d.ts)文件中。

/// <reference lib="dom" />