您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

TS智能推导fieldProps

TS智能推导fieldProps

typings.ts

type EnumFieldType = "number" | "input" | "select";
export interface INumber {
    value: number;
    ...
}
export interface IInput {
    value: string;
    ...
}
export interface ISelect {
    value: string[];
    ...
}
export interface IItem {
    type: EnumFieldType | "custom";
    // 根据type的值,智能推导 fieldProps 为对应的 INumber、IInput、ISelect
    fieldProps?: unknown;
}

export interface IProps {
    name: string;
    data: IItem[];
}

index.tsx

const data:IProps={
  name:'components',
  data:[{
      type:'number',
    // 这里应该智能推导为 INumber
    fieldProps:{}
  },{
      type:'input',
    // 这里应该智能推导为 IInput
    fieldProps:{}
  },{
      type:'select',
    // 这里应该智能推导为 ISelect
    fieldProps:{}
  }];
}

想要的结果:根据type的值,智能推导 fieldProps 为对应的 INumber、IInput、ISelect

前端 2022/2/8 20:50:29 有508人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶