joken-前端工程师

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::
  404 随笔 :: 39 文章 :: 8 评论 :: 20万 阅读

写法1

export interface Config {
  arr1: Array<IObject>,
  obj1?: IObject
}

const props = defineProps({
  title: {
    type: String,
	//必须的prop
    required: true,
    default: 'Default Title'
  },
  //数组
  dicts: {
    type: Array,
    required: true,
    default: () => []
  },
  customClass: {
    type: String,
    default: ''
  },
  //对象
  config: {
    type: Object as PropType<Config>,
    default: () => ({
      arr1: [], obj1: {
        arr1: [],
        obj1: {
          id: 1,
          name: "test"
        }
      }
    })
  }
})

withDefaults 方式

<template>
  <div class="box">
    <div><i-ep-edit /></div>
    <div><i-ep-chat-dot-round /></div>
    <div><i-ep-close /></div>
  </div>
</template>
<script lang="ts" setup>
// import { ref, reactive, computed, onMounted, nextTick } from 'vue';

interface Props {
  arr: Array<{ name: string }>;
  arr2: Array<{ name: string }>;
  my: string;
  it: number;
}
const props = withDefaults(defineProps<Props>(), {
  arr: () => [], //object对象得函数方式返回,不能直接给空数组,原因是类型限定就是得函数的方式传回object对象数据
  // type NativeType = null | number | string | boolean | symbol | Function;
  // type InferDefault<P, T> = ((props: P) => T & {}) | (T extends NativeType ? T : never);
  my: "",
});

const { arr, arr2, my, it } = props;

console.log(arr, "arrslfkjslfjslf"); //[], 说明default默认值设置是有效的
console.log(arr2, "arr2slkdfjlskfjlksjfksjd"); //undefined ,没设置默认值就是undefined

console.log(my, "myslkdfjsldfjsldfjsldfjsldf"); // "", 说明default默认值设置是有效的

console.log(it, "itslkdfjsldfjsldfjsldfjsldf"); // undefined, 没设置默认值就是undefined
arr.map((i) => {
  console.log(i.name, "slndvsldjslfkjskf");
});
</script>
<style lang="stylus" scoped></style>

posted on   joken1310  阅读(130)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示