定义一个props的接口:

interface IPropsUpload {
    accept?: string,
    multiple?: boolean,
    options: UploadOptions,
}
// 其中options是一个对象,接收上传是自定义的一些options
type UploadOptions = {
    chunkSize: number,
    simultaneousUpload: number,
}

此时,定义一个props,再给props的options的两个必填属性赋初始默认值

const props = withDefaults(defineProps<IPropsUpload>(), {
    accept: '',
    multiple: false,
    options: () => ({
        chunkSize: 1024,
        simultaneousUpload: 3
    })
});

这样赋值之后,可以检测一下是否正确有效:
在这里插入图片描述
这里aa属性报错未定义,但是chunkSize属性未报错,由此可见我们定义的有效。

注意:options要使用一个返回UploadOptions类型函数的方式赋值,不要直接使用一个对象字面量赋值(像下面这样)

// ❌❌❌
const props = withDefaults(defineProps<IPropsUpload>(), {
    accept: '',
    multiple: false,
    options: {
        chunkSize: 1024,
        simultaneousUpload: 3
    }
});

在这里插入图片描述

更多推荐