typescript 限定索引范围

目的后台定义一个表单的结构

interface form{
    username: string,
    password: string,
}

定义表单字段的验证方法

interface formValidate{
    [formIndex: string]: {
        [validataIndex:string]: {
            args: any,
            msg: string
        }
    };
}

想要实现的效果就是 定义了表单的结构,然后在定义验证方法的接口时索引为表单的索引,好像饶了点
换句话说就是formIndex这个字符串限定范围(username,password)
这个需求在typescript能实现吗?
求帮助

阅读 2.7k
2 个回答
interface UserForm  {
    username: string,
    password: string
}

interface validata {
    required?,
    isInt?,
    len?
}
type FormValidata<t> = {
    [p in keyof t]: {
        [x in keyof validata]: {
            args: any,
            msg: string
        }
    }
}
let data: FormValidata<UserForm> = {
    username: {
        required: {
            args: true,
            msg: 'must be have'
        }
    },
    password: {
        isInt: {
            args: true,
            msg: 'ss'
        }
    }
}

定义成枚举类型

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Microsoft
子站问答
访问
宣传栏