foo*_*urt 10 typescript reactjs
编译器找到 的定义HTMLElement
,但react/global.d.ts
取自的定义而不是typescript/lib/lib.dom.d.ts
。
这是编译器错误:
Property 'value' does not exist on type 'EventTarget'. TS2339
Run Code Online (Sandbox Code Playgroud)
以下是差异:
Property 'value' does not exist on type 'EventTarget'. TS2339
Run Code Online (Sandbox Code Playgroud)
interface Element { }
interface HTMLElement extends Element { }
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如何让编译器typescript/lib/lib.dom.d.ts
在 React 之前选择?任何帮助将不胜感激?
编辑:这是tsconfig.json
正确引用 TS 库的 :
interface HTMLElement extends Element, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable, HTMLOrSVGElement, ElementCSSInlineStyle {
accessKey: string;
readonly accessKeyLabel: string;
autocapitalize: string;
dir: string;
draggable: boolean;
hidden: boolean;
innerText: string;
lang: string;
readonly offsetHeight: number;
readonly offsetLeft: number;
readonly offsetParent: Element | null;
readonly offsetTop: number;
readonly offsetWidth: number;
spellcheck: boolean;
title: string;
translate: boolean;
click(): void;
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
Run Code Online (Sandbox Code Playgroud)
更新*
e.target
是一个 HTMLElement,但不保证它具有该value
属性。
尝试将 event.target 转换为 HTML 元素以确保它是 HTMLInputElement
(<HTMLInputElement>e.target).value
Run Code Online (Sandbox Code Playgroud)
参考: https: //angular.io/guide/user-input#! #type-the--*event *
旧答案*
尝试使用类型断言:current as HTMLElement
我可以看到element
is HTMLElement,但是,您应该检查current
. 我看不到井的初始化,current
因为它被错误消息窗口隐藏了。
归档时间: |
|
查看次数: |
726 次 |
最近记录: |