molstar
Version:
A comprehensive macromolecular library.
36 lines (35 loc) • 1.63 kB
TypeScript
/**
* Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
* @author David Sehnal <david.sehnal@gmail.com>
*/
export declare type Mutable<T> = {
-readonly [P in keyof T]: T[P];
};
export declare type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
export declare type PickRequired<T, K extends keyof T> = T & Required<Pick<T, K>>;
export declare type TypedIntArray = Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array;
export declare type TypedFloatArray = Float32Array | Float64Array;
export declare type TypedArray = TypedIntArray | TypedFloatArray;
export declare type NumberArray = TypedArray | number[];
export declare type UintArray = Uint8Array | Uint16Array | Uint32Array | number[];
export declare type ValueOf<T> = T[keyof T];
export declare type ArrayCtor<T> = {
new (size: number): {
[i: number]: T;
length: number;
};
};
/** assignable ArrayLike version */
export declare type AssignableArrayLike<T> = {
[i: number]: T;
length: number;
};
export declare type NonNullableArray<T extends any[] | ReadonlyArray<any>> = T extends any[] ? NonNullable<T[0]>[] : ReadonlyArray<NonNullable<T[0]>>;
export declare function ObjectKeys<T extends object>(o: T): (keyof T)[];
export interface FiniteArray<T, L extends number = number> extends ReadonlyArray<T> {
length: L;
}
export declare function assertUnreachable(x: never): never;
export declare function isPromiseLike<T = any>(x: any): x is Promise<T>;