vue3中ts的基本用法

  1. 定义类型(src/types/index.ts)
    ?代表可有可无

    export interface Persons {
    	id: number,
    	name: string,
    	age?: number
    }
    
  2. 定义Person子组件(src/components/Person.vue)

    <template>
    	<ul>
    		<li v-for="item in list" :key="item.id">
    			{{item.name}} --- {{item.age}}
    		</li>
    	</ul>
    </template>
    
    <script setup lang="ts">
    	import type {Persons} from '@/types';
    	import {withDefaults} from 'vue';
    	// 单纯的获取父级传过来的list
    	defineProps(['list']);
    	// 获取list,并限制类型
    	defineProps<{list: Persons[]}>();
    	// 获取list,并设置不必填
    	defineProps<{list?: Persons[]}>();
    	// 获取list,并设置默认值
    	withDefaults(defineProps<{list?: Persons[]}>(), {
    		list: () => [{id: 999, name: '我是默认值', age: 20}]
    	});
    </script>
    
  3. 定义App父组件(src/App.vue)

    <template>
    	<Person :list="PersonList"/>
    </template>
    
    <script setup lang="ts">
    	import Person from '@/components/Person.vue';
    	import {reactive} from 'vue';
    	import type {Persons} from '@/types';
    	const PersonList = reactive<Persons[]>([
    		{id: 1, name: '张三', age: 18},
    		{id: 2, name: '李四', age: 19},
    		{id: 3, name: '王五', age: 20}
    	]);
    </script>
    
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值