vue3+ts,使用PropType对props的数据做验证,与interface定义的数据没有对应上,但是却没有报错

问题

vue3+ts,使用PropType对props的数据做验证,与interface定义的数据没有对应上,但是却没有报错,FilterListProps中并没有定义aaa

image.png

interface

interface OptionsProps {
  value: string
  label: string | number
}

interface FilterListProps {
  type: string
  title: string
  placeholder: string
  key: string
  value: string
  options?: OptionsProps[]
}

数据

      filterList: [
        {
          type: 'input',
          title: '用户ID',
          placeholder: '请输入用户ID',
          key: 'userId',
          value: '',
          aaa: ''
        },
        {
          type: 'select',
          title: '账号类型',
          placeholder: '请选择',
          key: 'accountType',
          value: '',
          options: [
            {
              value: '选项1',
              label: '黄金糕'
            },
            {
              value: '选项2',
              label: '双皮奶'
            }
          ]
        },
      ]

PropType

  props: {
    filterList: {
      type: Array as PropType<FilterListProps[]>,
      // type: Array,
      required: true
    }
  },
阅读 5.3k
2 个回答

interface只会检查他是否是目标数据的子集,如果要明确的指定能出现的key可以这样做

type Person = {
  age: number;
  name: string;
};

const a: Person = {
  c: 1, //报错
  age: 1,
  name: ""
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题