vue3+ts 搭建系统问题小结

自定义组件v-model报错

  "不能将类型“{ modelValue: { week: string; number: number; startTime: string; endTime: string; }[]; }”分配给类型“IntrinsicAttributes & (Partial<{ [x: number]: string; } | {}> & Omit<(readonly string[] | Readonly<ExtractPropTypes<Readonly<ComponentObjectPropsOptions<Data>>>>) & (VNodeProps & ... 2 more ... & Readonly<...>), never>)”。\n  不能将类型“{ modelValue: { week: string; number: number; startTime: string; endTime: string; }[]; }”分配给类型“IntrinsicAttributes & Partial<{}> & Omit<(readonly string[] | Readonly<ExtractPropTypes<Readonly<ComponentObjectPropsOptions<Data>>>>) & (VNodeProps & ... 2 more ... & Readonly<...>), never>”。",

解决方案:使用v-model:xx格式

// 父
NumberList(v-model:list="numberList" @change="handleChangeNumber")

// 子
props: {
    list: {
        type: Array as PropType<NumberType[]>,
            default: () => {
            return [];
            }
    }
},

setup(props, { attrs, emit }) {
    const numberList: any = computed({
        get() {
            return props.list;
        },
        set(val) {
            emit("update:list", val);
        }
    });
})

ts声明props类型

import { computed, ref, defineComponent, PropType } from "vue";
props: {
  list: {
      type: Array as PropType<NumberType[]>,
      default: () => {
       return [];
      }
  }
}

使用pug模板

安装pug编译模板,但是开发过程中prettier格式化对pug并不生效,经过多次尝试,确定可用的方法为vetur手动格式化(我的编辑器默认格式化工具是prettier),编辑器vetur配置为"vetur.format.defaultFormatter.pug": "prettier",

image.png
image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容