MST

星途 面试题库

面试题:TypeScript映射类型在表单验证中的应用

假设你正在开发一个前端表单,表单中有用户名、密码等字段。请使用TypeScript的映射类型,创建一个用于表单验证的类型,该类型能根据表单字段类型生成对应的验证规则类型,例如用户名是字符串类型,验证规则可能是`{ required: true, minLength: 3 }`,密码同样是字符串类型,验证规则可能是`{ required: true, minLength: 6 }`。请写出相关的TypeScript代码实现。
30.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 假设表单数据类型
type FormData = {
    username: string;
    password: string;
};

// 映射类型生成验证规则类型
type ValidationRules<T> = {
    [K in keyof T]: T[K] extends string
      ? { required: boolean; minLength: number }
        : never;
};

// 根据FormData生成验证规则类型
type FormValidationRules = ValidationRules<FormData>;

// 示例验证规则
const validationRules: FormValidationRules = {
    username: { required: true, minLength: 3 },
    password: { required: true, minLength: 6 }
};