index.d.ts
69 lines
| 2.2 KiB
| video/mp2t
|
TypeScriptLexer
cin
|
r40 | /// <reference path="./css.d.ts"/> | ||
/// <reference path="./dijit.d.ts"/> | ||||
cin
|
r28 | |||
declare namespace JSX { | ||||
cin
|
r40 | |||
cin
|
r34 | interface DjxIntrinsicAttributes { | ||
cin
|
r41 | /** alias for className */ | ||
cin
|
r34 | class: string; | ||
cin
|
r41 | |||
/** specifies the name of the property in the widget where the the | ||||
* reference to the current object will be stored | ||||
*/ | ||||
cin
|
r34 | "data-dojo-attach-point": string; | ||
cin
|
r41 | |||
/** specifies handlers map for the events */ | ||||
cin
|
r34 | "data-dojo-attach-event": string; | ||
cin
|
r52 | |||
/** @deprecated */ | ||||
cin
|
r41 | [attr: string]: any; | ||
} | ||||
interface DjxIntrinsicElements { | ||||
cin
|
r34 | } | ||
cin
|
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]; | ||||
cin
|
r41 | |||
type ExtractMembers<T, U> = Pick<T, MatchingMemberKeys<T, U>>; | ||||
type ExcludeMembers<T, U> = Pick<T, NotMatchingMemberKeys<T, U>>; | ||||
cin
|
r40 | type ElementAttrNames<E> = NotMatchingMemberKeys<E, (...args: any[]) => any>; | ||
type ElementAttrType<E, K extends keyof any> = K extends keyof E ? RecursivePartial<E[K]> : string; | ||||
cin
|
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; | ||||
cin
|
r40 | |||
cin
|
r41 | type LaxIntrinsicElementsMap = { | ||
[tag in keyof HTMLElementTagNameMap]: LaxElement<HTMLElementTagNameMap[tag]> | ||||
} & DjxIntrinsicElements; | ||||
type IntrinsicElements = { | ||||
[tag in keyof LaxIntrinsicElementsMap]: RecursivePartial<LaxIntrinsicElementsMap[tag]>; | ||||
cin
|
r28 | } | ||
} | ||||