Hygen便利だけど、型がわからないな。。と思ったので、
いろいろ調べてみたときの備忘録(*´ω`*)
サンプルはこんな感じ(*´ω`*)
// prompt.ts import type Enquirer from "enquirer"; // 質問リストの型 type PromptOptions = Exclude< Parameters<typeof Enquirer.prompt>[0], Function | any[] >; // 回答の型 type Answer = { name: string; }; // 質問のリスト const questions: PromptOptions[] = [ { type: "input", name: "name", message: "What is the name of page? ex. Users or UserDetails", }, ]; // hygenが実行するprompt const propmter = { // 引数のprompterの実態は、Enquirer prompt: async ({ prompter }:{ prompter: typeof Enquirer }) => { const answers = await prompter.prompt<Answer>(questions); return { ...answer, addParam: "ex-param" }; }, }; export default prompter;
プロンプトの実体は、Enquirer。
質問リストのPromptOptions
もEnquirerだけど、型が提供されてない。
なので、Exclude
を使って型を取ってきている感じ。
以上!! ドキュメントも少ないので、細かい指定が分かりづらいなと思ってたけど、
補完が効くようになったので、だいぶ楽になった。。(*´ω`*)