index.d.ts
69 lines
| 2.2 KiB
| video/mp2t
|
TypeScriptLexer
|
|
r40 | /// <reference path="./css.d.ts"/> | ||
| /// <reference path="./dijit.d.ts"/> | ||||
|
|
r28 | |||
| declare namespace JSX { | ||||
|
|
r40 | |||
|
|
r34 | interface DjxIntrinsicAttributes { | ||
|
|
r41 | /** alias for className */ | ||
|
|
r34 | class: string; | ||
|
|
r41 | |||
| /** specifies the name of the property in the widget where the the | ||||
| * reference to the current object will be stored | ||||
| */ | ||||
|
|
r34 | "data-dojo-attach-point": string; | ||
|
|
r41 | |||
| /** specifies handlers map for the events */ | ||||
|
|
r34 | "data-dojo-attach-event": string; | ||
|
|
r52 | |||
| /** @deprecated */ | ||||
|
|
r41 | [attr: string]: any; | ||
| } | ||||
| interface DjxIntrinsicElements { | ||||
|
|
r34 | } | ||
|
|
r40 | |||
| type RecursivePartial<T> = T extends string | number | boolean | null | undefined | Function ? | ||||
| T : | ||||
| { [k in keyof T]?: RecursivePartial<T[k]> }; | ||||
| type MatchingMemberKeys<T, U> = { | ||||
| [K in keyof T]: T[K] extends U ? K : never; | ||||
| }[keyof T]; | ||||
| type NotMatchingMemberKeys<T, U> = { | ||||
| [K in keyof T]: T[K] extends U ? never : K; | ||||
| }[keyof T]; | ||||
|
|
r41 | |||
| type ExtractMembers<T, U> = Pick<T, MatchingMemberKeys<T, U>>; | ||||
| type ExcludeMembers<T, U> = Pick<T, NotMatchingMemberKeys<T, U>>; | ||||
|
|
r40 | type ElementAttrNames<E> = NotMatchingMemberKeys<E, (...args: any[]) => any>; | ||
| type ElementAttrType<E, K extends keyof any> = K extends keyof E ? RecursivePartial<E[K]> : string; | ||||
|
|
r52 | |||
| type ElementAttrNamesBlacklist = "children" | "getRootNode" | keyof EventTarget; | ||||
| /** This type extracts keys of the specified parameter E by the following rule: | ||||
| * 1. skips all ElementAttrNamesBlacklist | ||||
| * 2. skips all methods except with the signature of event handlers | ||||
| */ | ||||
| type AssignableElementAttrNames<E> = { | ||||
| [K in keyof E]: K extends ElementAttrNamesBlacklist ? never : | ||||
| ((evt: Event) => any) extends E[K] ? K : | ||||
| E[K] extends ((...args: any[]) => any) ? never : | ||||
| K; | ||||
| }[keyof E]; | ||||
| type LaxElement<E extends object> = | ||||
| Pick<E, AssignableElementAttrNames<E>> & | ||||
| DjxIntrinsicAttributes; | ||||
|
|
r40 | |||
|
|
r41 | type LaxIntrinsicElementsMap = { | ||
| [tag in keyof HTMLElementTagNameMap]: LaxElement<HTMLElementTagNameMap[tag]> | ||||
| } & DjxIntrinsicElements; | ||||
| type IntrinsicElements = { | ||||
| [tag in keyof LaxIntrinsicElementsMap]: RecursivePartial<LaxIntrinsicElementsMap[tag]>; | ||||
|
|
r28 | } | ||
| } | ||||
