What is @types/inquirer?
The @types/inquirer package provides TypeScript type definitions for Inquirer.js, a library for creating interactive command-line interfaces. These type definitions enable TypeScript developers to use Inquirer.js with type checking, ensuring that they are using the library's API correctly.
What are @types/inquirer's main functionalities?
Prompt Types
Demonstrates how to use different types of prompts such as 'input' for text input and 'list' for selecting from a list of options.
import inquirer from 'inquirer';
async function askQuestion() {
const answers = await inquirer.prompt([
{
type: 'input',
name: 'name',
message: 'What's your name?',
},
{
type: 'list',
name: 'choice',
message: 'Pick a choice:',
choices: ['Choice A', 'Choice B'],
}
]);
console.log(answers);
}
askQuestion();
Validation
Shows how to validate user input to ensure it meets certain criteria, in this case, checking if the input is a number.
import inquirer from 'inquirer';
inquirer.prompt([
{
type: 'input',
name: 'age',
message: 'Enter your age:',
validate: function(value) {
var valid = !isNaN(parseFloat(value));
return valid || 'Please enter a number';
},
filter: Number,
}
]).then(answers => {
console.log(`Your age is ${answers.age}`);
});
Conditional Questions
Illustrates how to ask questions conditionally based on previous answers using the 'when' property.
import inquirer from 'inquirer';
inquirer.prompt([
{
type: 'confirm',
name: 'toBeAsked',
message: 'Do you want to answer more questions?',
},
{
type: 'input',
name: 'moreInfo',
message: 'Tell me more:',
when: function(answers) {
return answers.toBeAsked;
}
}
]).then(answers => {
console.log(answers);
});
Other packages similar to @types/inquirer
prompt
Prompt is another package for creating interactive command-line prompts. Compared to Inquirer.js, it has a simpler API but lacks some of the advanced features such as conditional prompts and modular prompt types.
enquirer
Enquirer is a modern, promise-based, performant library for creating command-line prompts. It offers a similar set of features to Inquirer.js but focuses on being lightweight and highly customizable.
vorpal
Vorpal is a framework for building interactive CLI applications. While it includes a system for prompting, its scope is broader, including command parsing, extensions, and interactive command execution. It's more suited for building complex CLI tools compared to the focused prompting capabilities of Inquirer.js.