From 1d5090a739f57727e54b11976d2a43db9523692d Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Fri, 2 Nov 2018 16:16:07 -0400 Subject: [PATCH] [prompts] infer answers types ``` const answers = await prompts({ name: "hello" }) answers.asdf // error answers.name // good ``` --- types/prompts/index.d.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/types/prompts/index.d.ts b/types/prompts/index.d.ts index 152d6326e8..498a6b0c33 100644 --- a/types/prompts/index.d.ts +++ b/types/prompts/index.d.ts @@ -6,7 +6,7 @@ export = prompts; -declare function prompts(questions: prompts.PromptObject | prompts.PromptObject[], options?: prompts.Options): any; +declare function prompts(questions: prompts.PromptObject | prompts.PromptObject[], options?: prompts.Options): prompts.Answers; declare namespace prompts { // Circular reference from prompts @@ -51,9 +51,9 @@ declare namespace prompts { onCancel: (prompt: PromptObject, answers: any) => void; } - interface PromptObject { + interface PromptObject { type: string | ((prev: any, values: any, prompt: PromptObject) => void); - name: string | ((prev: any, values: any, prompt: PromptObject) => void); + name: T | ((prev: any, values: any, prompt: PromptObject) => void); message?: string | ((prev: any, values: any, prompt: PromptObject) => void); initial?: string; style?: string; @@ -73,4 +73,6 @@ declare namespace prompts { suggest?: ((prev: any, values: any, prompt: PromptObject) => void); limit?: number; } + + type Answers = { [id in T]: string }; }