Open
Description
I am using plopjs and was having a great time until I decided to migrate to TypeScript (because I like types).
What is the advice for using a Dynamic Actions Array like this in TypeScript?
actions: (answers) => {
}
Inside the closure, I want to be able to reference the prompts like: answers.projectName
.
If I create an interface for the prompt parameters, like:
interface PromptProps {
projectName: string
}
Then, I can add type information like this:
actions: (answers: PromptProps) => {
}
While this solves the answers.projectName
problem, Typescript still complains about the actions
declaration:
Type '(answers: PromptProps) => (string | ((answers: PromptProps) => string) | { type: string; path: string; pattern: RegExp; template: string; })[]' is not assignable to type 'Actions | undefined'.
Type '(answers: PromptProps) => (string | ((answers: PromptProps) => string) | { type: string; path: string; pattern: RegExp; template: string; })[]' is not assignable to type 'DynamicActionsFunction'.
Types of parameters 'answers' and 'data' are incompatible.
Type 'Answers | undefined' is not assignable to type 'PromptProps'.
Type 'undefined' is not assignable to type 'PromptProps'.ts(2322)
What is the solution?
Metadata
Assignees
Labels
No labels