From b66275c43c202ec37c7d6522f4346034cfc142d7 Mon Sep 17 00:00:00 2001 From: Nathan Bierema Date: Wed, 19 Sep 2018 02:20:07 -0400 Subject: [PATCH] [schedule] Add types --- types/schedule/index.d.ts | 20 ++++++++++++++++++++ types/schedule/schedule-tests.ts | 8 ++++++++ types/schedule/tsconfig.json | 23 +++++++++++++++++++++++ types/schedule/tslint.json | 1 + 4 files changed, 52 insertions(+) create mode 100644 types/schedule/index.d.ts create mode 100644 types/schedule/schedule-tests.ts create mode 100644 types/schedule/tsconfig.json create mode 100644 types/schedule/tslint.json diff --git a/types/schedule/index.d.ts b/types/schedule/index.d.ts new file mode 100644 index 0000000000..11a2715eef --- /dev/null +++ b/types/schedule/index.d.ts @@ -0,0 +1,20 @@ +// Type definitions for schedule 0.5 +// Project: https://reactjs.org/ +// Definitions by: Nathan Bierema +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export interface Deadline { + timeRemaining(): number; + didTimeout: boolean; +} +export type FrameCallbackType = (deadline: Deadline) => void; +export interface CallbackNode { + callback: FrameCallbackType; + timesOutAt: number; + next: CallbackNode | null; + prev: CallbackNode | null; +} + +export function unstable_scheduleWork(callback: FrameCallbackType, options?: { timeout: number }): CallbackNode; +export function unstable_cancelScheduledWork(callbackNode: CallbackNode): void; +export function unstable_now(): number; diff --git a/types/schedule/schedule-tests.ts b/types/schedule/schedule-tests.ts new file mode 100644 index 0000000000..d122c56d2a --- /dev/null +++ b/types/schedule/schedule-tests.ts @@ -0,0 +1,8 @@ +import { unstable_scheduleWork, unstable_cancelScheduledWork, unstable_now } from 'schedule'; + +// $ExpectType CallbackNode +const callbackNode = unstable_scheduleWork(() => 0, { timeout: 100 }); +unstable_cancelScheduledWork(callbackNode); + +// $ExpectType number +unstable_now(); diff --git a/types/schedule/tsconfig.json b/types/schedule/tsconfig.json new file mode 100644 index 0000000000..09afc32571 --- /dev/null +++ b/types/schedule/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "schedule-tests.ts" + ] +} diff --git a/types/schedule/tslint.json b/types/schedule/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/schedule/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }