You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Inquirer在TypeScript中获取用户输入并存入数组?

TypeScript + Inquirer 实现学生注册表单并存储数据到数组

1. 项目初始化与依赖安装

首先初始化项目并安装所需依赖:

npm init -y
npm install typescript @types/node @types/inquirer inquirer --save-dev

接着创建tsconfig.json,配置基础的TypeScript编译选项:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "CommonJS",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true
  },
  "include": ["src/**/*"]
}

2. 核心代码实现

在src/index.ts中编写以下代码,实现学生信息录入、数组存储的完整逻辑:

import inquirer from 'inquirer';

// 定义学生数据类型
interface Student {
  id: string;
  name: string;
  age: number;
  major: string;
}

// 存储学生数据的数组
let students: Student[] = [];

// 学生注册函数
async function registerStudent() {
  const answers = await inquirer.prompt([
    {
      type: 'input',
      name: 'id',
      message: '请输入学生学号:',
      validate: (input) => input.trim() !== '' || '学号不能为空'
    },
    {
      type: 'input',
      name: 'name',
      message: '请输入学生姓名:',
      validate: (input) => input.trim() !== '' || '姓名不能为空'
    },
    {
      type: 'number',
      name: 'age',
      message: '请输入学生年龄:',
      validate: (input) => input > 0 || '年龄必须是正数'
    },
    {
      type: 'input',
      name: 'major',
      message: '请输入学生专业:',
      validate: (input) => input.trim() !== '' || '专业不能为空'
    },
    {
      type: 'confirm',
      name: 'continue',
      message: '是否继续注册其他学生?'
    }
  ]);

  // 将输入的学生信息存入数组
  students.push({
    id: answers.id,
    name: answers.name,
    age: answers.age,
    major: answers.major
  });

  // 如果用户选择继续,递归调用注册函数
  if (answers.continue) {
    await registerStudent();
  } else {
    // 打印所有注册的学生信息
    console.log('\n=== 已注册学生信息 ===');
    students.forEach((student, index) => {
      console.log(`学生${index + 1}:`);
      console.log(`学号:${student.id},姓名:${student.name},年龄:${student.age},专业:${student.major}`);
    });
  }
}

// 启动注册流程
registerStudent();

3. 运行项目

执行以下命令启动程序:

npx ts-node src/index.ts

运行后按照提示输入学生信息,完成后会展示所有已注册的学生数据,所有信息都会临时存储在students数组中(程序退出后数据会丢失,符合作业不使用数据库的要求)。

内容的提问来源于stack exchange,提问作者Somama CIA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 16:59:58