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