diff --git a/package.json b/package.json index 9e7b3d3..718909d 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,9 @@ "typeguards", "types" ], + "dependencies": { + "type-fest": "^0.16.0" + }, "devDependencies": { "@sindresorhus/tsconfig": "^0.7.0", "@types/jsdom": "^16.1.0", diff --git a/source/index.ts b/source/index.ts index f819d82..86ba271 100644 --- a/source/index.ts +++ b/source/index.ts @@ -2,7 +2,7 @@ /// /// -export type Class = new (...args: any[]) => T; +import {Class, TypedArray, ObservableLike, Primitive} from 'type-fest'; const typedArrayTypeNames = [ 'Int8Array', @@ -18,19 +18,6 @@ const typedArrayTypeNames = [ 'BigUint64Array' ] as const; -export type TypedArray = - | Int8Array - | Uint8Array - | Uint8ClampedArray - | Int16Array - | Uint16Array - | Int32Array - | Uint32Array - | Float32Array - | Float64Array - | BigInt64Array - | BigUint64Array; - type TypedArrayTypeName = typeof typedArrayTypeNames[number]; function isTypedArrayName(name: unknown): name is TypedArrayTypeName { @@ -80,15 +67,6 @@ const primitiveTypeNames = [ 'symbol' ] as const; -export type Primitive = - | null - | undefined - | string - | number - | bigint - | boolean - | symbol; - type PrimitiveTypeName = typeof primitiveTypeNames[number]; function isPrimitiveTypeName(name: unknown): name is PrimitiveTypeName { @@ -319,11 +297,6 @@ is.domElement = (value: unknown): value is HTMLElement => { DOM_PROPERTIES_TO_CHECK.every(property => property in value); }; -export interface ObservableLike { - subscribe(observer: (value: unknown) => void): void; - [Symbol.observable](): ObservableLike; -} - is.observable = (value: unknown): value is ObservableLike => { if (!value) { return false;