2022-07-22 06:21:47 +00:00
|
|
|
// Required for TypeScript to work properly
|
|
|
|
interface NewableFunction extends Function {}
|
|
|
|
interface CallableFunction extends Function {}
|
|
|
|
interface IArguments {
|
|
|
|
[index: number]: any;
|
|
|
|
length: number;
|
|
|
|
callee: Function;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Helper type
|
|
|
|
type Exclude<T, U> = T extends U ? never : T;
|
2023-01-22 22:16:44 +00:00
|
|
|
|
|
|
|
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
|
2023-02-11 08:40:06 +00:00
|
|
|
|
|
|
|
type NonNull<T> = Exclude<T, undefined | null>;
|