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;