1 | type ObjectKeys<T> =
|
2 |
|
3 | T extends object ? (keyof T)[] :
|
4 | T extends number ? [] :
|
5 | T extends Array<any> | string ? string[] :
|
6 | never;
|
7 |
|
8 | interface ObjectConstructor {
|
9 | keys<T>(o: T): ObjectKeys<T>;
|
10 | getOwnPropertyNames<T>(o: T): (keyof T | "constructor")[];
|
11 | }
|
12 |
|
13 | type Func = (...args: any[]) => any;
|
14 |
|
15 | interface Element {
|
16 | setAttribute(qualifiedName: string, value: boolean | string | number): void;
|
17 | }
|
18 |
|
19 | type LowerKeys<T> = keyof {
|
20 | [P in keyof T as Lowercase<string & P>]: P;
|
21 | };
|
22 |
|
23 | interface Window {
|
24 |
|
25 | WUPrefStyle?: HTMLStyleElement;
|
26 | }
|