类关系图
Dom类关系图
源代码
一、Event接口
interface Event {
readonly bubbles: boolean;
cancelBubble: boolean;
readonly cancelable: boolean;
readonly composed: boolean;
//加监听器的对象
readonly currentTarget: EventTarget | null;
readonly defaultPrevented: boolean;
readonly eventPhase: number;
readonly isTrusted: boolean;
returnValue: boolean;
//真正的事件源对象
readonly target: EventTarget | null;
readonly timeStamp: number;
readonly type: string;
composedPath(): EventTarget[];
initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;
preventDefault(): void;
stopImmediatePropagation(): void;
stopPropagation(): void;
readonly AT_TARGET: number;
readonly BUBBLING_PHASE: number;
readonly CAPTURING_PHASE: number;
readonly NONE: number;
}
二、EventTarget 接口
interface EventTarget {
addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void;
dispatchEvent(event: Event): boolean;
removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
}
interface ChildNode extends Node {
after(...nodes: (Node | string)[]): void;
before(...nodes: (Node | string)[]): void;
remove(): void;
replaceWith(...nodes: (Node | string)[]): void;
}
三、ParentNode 接口
interface ParentNode {
readonly childElementCount: number;
readonly children: HTMLCollection;
readonly firstElementChild: Element | null;
readonly lastElementChild: Element | null;
append(...nodes: (Node | string)[]): void;
prepend(...nodes: (Node | string)[]): void;
querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
querySelector<E extends Element = Element>(selectors: string): E | null;
querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
}
四、Node 接口
interface Node extends EventTarget {
readonly baseURI: string;
readonly childNodes: NodeListOf<ChildNode>;
readonly firstChild: ChildNode | null;
readonly isConnected: boolean;
readonly lastChild: ChildNode | null;
readonly nextSibling: ChildNode | null;
readonly nodeName: string;
readonly nodeType: number;
nodeValue: string | null;
readonly ownerDocument: Document | null;
readonly parentElement: HTMLElement | null;
readonly parentNode: Node & ParentNode | null;
readonly previousSibling: Node | null;
textContent: string | null;
appendChild<T extends Node>(newChild: T): T;
cloneNode(deep?: boolean): Node;
compareDocumentPosition(other: Node): number;
contains(other: Node | null): boolean;
getRootNode(options?: GetRootNodeOptions): Node;
hasChildNodes(): boolean;
insertBefore<T extends Node>(newChild: T, refChild: Node | null): T;
isDefaultNamespace(namespace: string | null): boolean;
isEqualNode(otherNode: Node | null): boolean;
isSameNode(otherNode: Node | null): boolean;
lookupNamespaceURI(prefix: string | null): string | null;
lookupPrefix(namespace: string | null): string | null;
normalize(): void;
removeChild<T extends Node>(oldChild: T): T;
replaceChild<T extends Node>(newChild: Node, oldChild: T): T;
readonly ATTRIBUTE_NODE: number;
readonly CDATA_SECTION_NODE: number;
readonly COMMENT_NODE: number;
readonly DOCUMENT_FRAGMENT_NODE: number;
readonly DOCUMENT_NODE: number;
readonly DOCUMENT_POSITION_CONTAINED_BY: number;
readonly DOCUMENT_POSITION_CONTAINS: number;
readonly DOCUMENT_POSITION_DISCONNECTED: number;
readonly DOCUMENT_POSITION_FOLLOWING: number;
readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;
readonly DOCUMENT_POSITION_PRECEDING: number;
readonly DOCUMENT_TYPE_NODE: number;
readonly ELEMENT_NODE: number;
readonly ENTITY_NODE: number;
readonly ENTITY_REFERENCE_NODE: number;
readonly NOTATION_NODE: number;
readonly PROCESSING_INSTRUCTION_NODE: number;
readonly TEXT_NODE: number;
}
四、Element接口
interface Element extends Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slotable, InnerHTML, Animatable {
readonly assignedSlot: HTMLSlotElement | null;
readonly attributes: NamedNodeMap;
/**
* Allows for manipulation of element's class content attribute as a
* set of whitespace-separated tokens through a DOMTokenList object.
*/
readonly classList: DOMTokenList;
/**
* Returns the value of element's class content attribute. Can be set
* to change it.
*/
className: string;
readonly clientHeight: number;
readonly clientLeft: number;
readonly clientTop: number;
readonly clientWidth: number;
/**
* Returns the value of element's id content attribute. Can be set to
* change it.
*/
id: string;
/**
* Returns the local name.
*/
readonly localName: string;
/**
* Returns the namespace.
*/
readonly namespaceURI: string | null;
onfullscreenchange: ((this: Element, ev: Event) => any) | null;
onfullscreenerror: ((this: Element, ev: Event) => any) | null;
outerHTML: string;
/**
* Returns the namespace prefix.
*/
readonly prefix: string | null;
readonly scrollHeight: number;
scrollLeft: number;
scrollTop: number;
readonly scrollWidth: number;
/**
* Returns element's shadow root, if any, and if shadow root's mode is "open", and null otherwise.
*/
readonly shadowRoot: ShadowRoot | null;
/**
* Returns the value of element's slot content attribute. Can be set to
* change it.
*/
slot: string;
/**
* Returns the HTML-uppercased qualified name.
*/
readonly tagName: string;
/**
* Creates a shadow root for element and returns it.
*/
attachShadow(init: ShadowRootInit): ShadowRoot;
/**
* Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
*/
closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
closest(selector: string): Element | null;
/**
* Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
*/
getAttribute(qualifiedName: string): string | null;
/**
* Returns element's attribute whose namespace is namespace and local name is localName, and null if there is
* no such attribute otherwise.
*/
getAttributeNS(namespace: string | null, localName: string): string | null;
/**
* Returns the qualified names of all element's attributes.
* Can contain duplicates.
*/
getAttributeNames(): string[];
getAttributeNode(name: string): Attr | null;
getAttributeNodeNS(namespaceURI: string, localName: string): Attr | null;
getBoundingClientRect(): ClientRect | DOMRect;
getClientRects(): ClientRectList | DOMRectList;
getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
getElementsByTagNameNS(namespaceURI: string, localName: string): HTMLCollectionOf<Element>;
/**
* Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
*/
hasAttribute(qualifiedName: string): boolean;
/**
* Returns true if element has an attribute whose namespace is namespace and local name is localName.
*/
hasAttributeNS(namespace: string | null, localName: string): boolean;
/**
* Returns true if element has attributes, and false otherwise.
*/
hasAttributes(): boolean;
hasPointerCapture(pointerId: number): boolean;
insertAdjacentElement(position: InsertPosition, insertedElement: Element): Element | null;
insertAdjacentHTML(where: InsertPosition, html: string): void;
insertAdjacentText(where: InsertPosition, text: string): void;
/**
* Returns true if matching selectors against element's root yields element, and false otherwise.
*/
matches(selectors: string): boolean;
msGetRegionContent(): any;
releasePointerCapture(pointerId: number): void;
/**
* Removes element's first attribute whose qualified name is qualifiedName.
*/
removeAttribute(qualifiedName: string): void;
/**
* Removes element's attribute whose namespace is namespace and local name is localName.
*/
removeAttributeNS(namespace: string | null, localName: string): void;
removeAttributeNode(attr: Attr): Attr;
/**
* Displays element fullscreen and resolves promise when done.
* When supplied, options's navigationUI member indicates whether showing
* navigation UI while in fullscreen is preferred or not. If set to "show", navigation
* simplicity is preferred over screen space, and if set to "hide", more screen space
* is preferred. User agents are always free to honor user preference over the application's. The
* default value "auto" indicates no application preference.
*/
requestFullscreen(options?: FullscreenOptions): Promise<void>;
requestPointerLock(): void;
scroll(options?: ScrollToOptions): void;
scroll(x: number, y: number): void;
scrollBy(options?: ScrollToOptions): void;
scrollBy(x: number, y: number): void;
scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
scrollTo(options?: ScrollToOptions): void;
scrollTo(x: number, y: number): void;
/**
* Sets the value of element's first attribute whose qualified name is qualifiedName to value.
*/
setAttribute(qualifiedName: string, value: string): void;
/**
* Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
*/
setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
setAttributeNode(attr: Attr): Attr | null;
setAttributeNodeNS(attr: Attr): Attr | null;
setPointerCapture(pointerId: number): void;
/**
* If force is not given, "toggles" qualifiedName, removing it if it is
* present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
* Returns true if qualifiedName is now present, and false otherwise.
*/
toggleAttribute(qualifiedName: string, force?: boolean): boolean;
webkitMatchesSelector(selectors: string): boolean;
addEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
五、Document接口
interface Document extends Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, GlobalEventHandlers, DocumentAndElementEventHandlers {
readonly URL: string;
readonly activeElement: Element | null;
body: HTMLElement;
readonly characterSet: string;
readonly charset: string;
readonly compatMode: string;
readonly contentType: string;
cookie: string;
readonly currentScript: HTMLOrSVGScriptElement | null;
readonly defaultView: WindowProxy | null;
designMode: string;
dir: string;
readonly doctype: DocumentType | null;
readonly documentElement: HTMLElement;
readonly documentURI: string;
domain: string;
readonly embeds: HTMLCollectionOf<HTMLEmbedElement>;
readonly forms: HTMLCollectionOf<HTMLFormElement>;
readonly fullscreenEnabled: boolean;
readonly head: HTMLHeadElement;
readonly hidden: boolean;
readonly images: HTMLCollectionOf<HTMLImageElement>;
readonly implementation: DOMImplementation;
readonly inputEncoding: string;
readonly lastModified: string;
readonly links: HTMLCollectionOf<HTMLAnchorElement | HTMLAreaElement>;
location: Location;
onfullscreenchange: ((this: Document, ev: Event) => any) | null;
onfullscreenerror: ((this: Document, ev: Event) => any) | null;
onpointerlockchange: ((this: Document, ev: Event) => any) | null;
onpointerlockerror: ((this: Document, ev: Event) => any) | null;
onreadystatechange: ((this: Document, ev: ProgressEvent) => any) | null;
onvisibilitychange: ((this: Document, ev: Event) => any) | null;
/**
* Returns document's origin.
*/
readonly origin: string;
/**
* Return an HTMLCollection of the embed elements in the Document.
*/
readonly plugins: HTMLCollectionOf<HTMLEmbedElement>;
/**
* Retrieves a value that indicates the current state of the object.
*/
readonly readyState: DocumentReadyState;
/**
* Gets the URL of the location that referred the user to the current page.
*/
readonly referrer: string;
/**
* Retrieves a collection of all script objects in the document.
*/
readonly scripts: HTMLCollectionOf<HTMLScriptElement>;
readonly scrollingElement: Element | null;
readonly timeline: DocumentTimeline;
/**
* Contains the title of the document.
*/
title: string;
readonly visibilityState: VisibilityState;
adoptNode<T extends Node>(source: T): T;
close(): void;
createAttribute(localName: string): Attr;
createAttributeNS(namespace: string | null, qualifiedName: string): Attr;
createCDATASection(data: string): CDATASection;
createComment(data: string): Comment;
createDocumentFragment(): DocumentFragment;
createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];
createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;
createElementNS(namespaceURI: "http://www.w3.org/1999/xhtml", qualifiedName: string): HTMLElement;
createElementNS<K extends keyof SVGElementTagNameMap>(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: K): SVGElementTagNameMap[K];
createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: string): SVGElement;
createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;
createElementNS(namespace: string | null, qualifiedName: string, options?: string | ElementCreationOptions): Element;
createEvent(eventInterface: "AnimationEvent"): AnimationEvent;
createEvent(eventInterface: "AnimationPlaybackEvent"): AnimationPlaybackEvent;
createEvent(eventInterface: "AudioProcessingEvent"): AudioProcessingEvent;
createEvent(eventInterface: "BeforeUnloadEvent"): BeforeUnloadEvent;
createEvent(eventInterface: "ClipboardEvent"): ClipboardEvent;
createEvent(eventInterface: "CloseEvent"): CloseEvent;
createEvent(eventInterface: "CompositionEvent"): CompositionEvent;
createEvent(eventInterface: "CustomEvent"): CustomEvent;
createEvent(eventInterface: "DeviceLightEvent"): DeviceLightEvent;
createEvent(eventInterface: "DeviceMotionEvent"): DeviceMotionEvent;
createEvent(eventInterface: "DeviceOrientationEvent"): DeviceOrientationEvent;
createEvent(eventInterface: "DragEvent"): DragEvent;
createEvent(eventInterface: "ErrorEvent"): ErrorEvent;
createEvent(eventInterface: "Event"): Event;
createEvent(eventInterface: "Events"): Event;
createEvent(eventInterface: "FocusEvent"): FocusEvent;
createEvent(eventInterface: "FocusNavigationEvent"): FocusNavigationEvent;
createEvent(eventInterface: "GamepadEvent"): GamepadEvent;
createEvent(eventInterface: "HashChangeEvent"): HashChangeEvent;
createEvent(eventInterface: "IDBVersionChangeEvent"): IDBVersionChangeEvent;
createEvent(eventInterface: "KeyboardEvent"): KeyboardEvent;
createEvent(eventInterface: "ListeningStateChangedEvent"): ListeningStateChangedEvent;
createEvent(eventInterface: "MSGestureEvent"): MSGestureEvent;
createEvent(eventInterface: "MSMediaKeyMessageEvent"): MSMediaKeyMessageEvent;
createEvent(eventInterface: "MSMediaKeyNeededEvent"): MSMediaKeyNeededEvent;
createEvent(eventInterface: "MSPointerEvent"): MSPointerEvent;
createEvent(eventInterface: "MediaEncryptedEvent"): MediaEncryptedEvent;
createEvent(eventInterface: "MediaKeyMessageEvent"): MediaKeyMessageEvent;
createEvent(eventInterface: "MediaQueryListEvent"): MediaQueryListEvent;
createEvent(eventInterface: "MediaStreamErrorEvent"): MediaStreamErrorEvent;
createEvent(eventInterface: "MediaStreamEvent"): MediaStreamEvent;
createEvent(eventInterface: "MediaStreamTrackEvent"): MediaStreamTrackEvent;
createEvent(eventInterface: "MessageEvent"): MessageEvent;
createEvent(eventInterface: "MouseEvent"): MouseEvent;
createEvent(eventInterface: "MouseEvents"): MouseEvent;
createEvent(eventInterface: "MutationEvent"): MutationEvent;
createEvent(eventInterface: "MutationEvents"): MutationEvent;
createEvent(eventInterface: "OfflineAudioCompletionEvent"): OfflineAudioCompletionEvent;
createEvent(eventInterface: "OverflowEvent"): OverflowEvent;
createEvent(eventInterface: "PageTransitionEvent"): PageTransitionEvent;
createEvent(eventInterface: "PaymentRequestUpdateEvent"): PaymentRequestUpdateEvent;
createEvent(eventInterface: "PermissionRequestedEvent"): PermissionRequestedEvent;
createEvent(eventInterface: "PointerEvent"): PointerEvent;
createEvent(eventInterface: "PopStateEvent"): PopStateEvent;
createEvent(eventInterface: "ProgressEvent"): ProgressEvent;
createEvent(eventInterface: "PromiseRejectionEvent"): PromiseRejectionEvent;
createEvent(eventInterface: "RTCDTMFToneChangeEvent"): RTCDTMFToneChangeEvent;
createEvent(eventInterface: "RTCDataChannelEvent"): RTCDataChannelEvent;
createEvent(eventInterface: "RTCDtlsTransportStateChangedEvent"): RTCDtlsTransportStateChangedEvent;
createEvent(eventInterface: "RTCErrorEvent"): RTCErrorEvent;
createEvent(eventInterface: "RTCIceCandidatePairChangedEvent"): RTCIceCandidatePairChangedEvent;
createEvent(eventInterface: "RTCIceGathererEvent"): RTCIceGathererEvent;
createEvent(eventInterface: "RTCIceTransportStateChangedEvent"): RTCIceTransportStateChangedEvent;
createEvent(eventInterface: "RTCPeerConnectionIceErrorEvent"): RTCPeerConnectionIceErrorEvent;
createEvent(eventInterface: "RTCPeerConnectionIceEvent"): RTCPeerConnectionIceEvent;
createEvent(eventInterface: "RTCSsrcConflictEvent"): RTCSsrcConflictEvent;
createEvent(eventInterface: "RTCStatsEvent"): RTCStatsEvent;
createEvent(eventInterface: "RTCTrackEvent"): RTCTrackEvent;
createEvent(eventInterface: "SVGZoomEvent"): SVGZoomEvent;
createEvent(eventInterface: "SVGZoomEvents"): SVGZoomEvent;
createEvent(eventInterface: "SecurityPolicyViolationEvent"): SecurityPolicyViolationEvent;
createEvent(eventInterface: "ServiceWorkerMessageEvent"): ServiceWorkerMessageEvent;
createEvent(eventInterface: "SpeechRecognitionError"): SpeechRecognitionError;
createEvent(eventInterface: "SpeechRecognitionEvent"): SpeechRecognitionEvent;
createEvent(eventInterface: "SpeechSynthesisErrorEvent"): SpeechSynthesisErrorEvent;
createEvent(eventInterface: "SpeechSynthesisEvent"): SpeechSynthesisEvent;
createEvent(eventInterface: "StorageEvent"): StorageEvent;
createEvent(eventInterface: "TextEvent"): TextEvent;
createEvent(eventInterface: "TouchEvent"): TouchEvent;
createEvent(eventInterface: "TrackEvent"): TrackEvent;
createEvent(eventInterface: "TransitionEvent"): TransitionEvent;
createEvent(eventInterface: "UIEvent"): UIEvent;
createEvent(eventInterface: "UIEvents"): UIEvent;
createEvent(eventInterface: "VRDisplayEvent"): VRDisplayEvent;
createEvent(eventInterface: "VRDisplayEvent "): VRDisplayEvent ;
createEvent(eventInterface: "WebGLContextEvent"): WebGLContextEvent;
createEvent(eventInterface: "WheelEvent"): WheelEvent;
createEvent(eventInterface: string): Event;
createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter | null): NodeIterator;
createProcessingInstruction(target: string, data: string): ProcessingInstruction;
createRange(): Range;
createTextNode(data: string): Text;
createTouch(view: WindowProxy, target: EventTarget, identifier: number, pageX: number, pageY: number, screenX: number, screenY: number): Touch;
createTouchList(...touches: Touch[]): TouchList;
createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker;
elementFromPoint(x: number, y: number): Element | null;
elementsFromPoint(x: number, y: number): Element[];
execCommand(commandId: string, showUI?: boolean, value?: string): boolean;
exitFullscreen(): Promise<void>;
exitPointerLock(): void;
getAnimations(): Animation[];
getElementById(elementId: string): HTMLElement | null;
getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
getElementsByName(elementName: string): NodeListOf<HTMLElement>;
getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
/**
* If namespace and localName are
* "*" returns a HTMLCollection of all descendant elements.
* If only namespace is "*" returns a HTMLCollection of all descendant elements whose local name is localName.
* If only localName is "*" returns a HTMLCollection of all descendant elements whose namespace is namespace.
* Otherwise, returns a HTMLCollection of all descendant elements whose namespace is namespace and local name is localName.
*/
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
getElementsByTagNameNS(namespaceURI: string, localName: string): HTMLCollectionOf<Element>;
/**
* Returns an object representing the current selection of the document that is loaded into the object displaying a webpage.
*/
getSelection(): Selection | null;
/**
* Gets a value indicating whether the object currently has focus.
*/
hasFocus(): boolean;
/**
* Returns a copy of node. If deep is true, the copy also includes the node's descendants.
* If node is a document or a shadow root, throws a
* "NotSupportedError" DOMException.
*/
importNode<T extends Node>(importedNode: T, deep: boolean): T;
open(url?: string, name?: string, features?: string, replace?: boolean): Document;
queryCommandEnabled(commandId: string): boolean;
queryCommandIndeterm(commandId: string): boolean;
queryCommandState(commandId: string): boolean;
queryCommandSupported(commandId: string): boolean;
queryCommandValue(commandId: string): string;
write(...text: string[]): void;
writeln(...text: string[]): void;
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
网友评论