来自 TypeScript 类型的 Nuxt `defineProps`

问题描述 投票:0回答:2

我正在将 Nuxt 3 / Vue 3

defineProps
与 TypeScript 结合使用,并希望从 TypeScript 类型推断 types prop 类型。

import { User } from '~/types/types'

const props = defineProps({
  users: {
    type: Array, // User[]?
  },
})

在此示例中,如何使

users
属性成为
User[]
类型?

vue.js nuxt.js vuejs3 vue-composition-api nuxtjs3
2个回答
5
投票

使用Vue的

PropType

import { PropType } from 'vue'
import { User } from '~/types/types'

const props = defineProps = ({
  users: {
    type: Array as PropType<User[]>
  },
})

3
投票

您还可以使用纯类型语法:

import { User } from '~/types/types'

const props = defineProps<{users:User[], title:string}>()

您可以使用

withDefaults
助手添加默认值:

const props = withDefaults(defineProps<{users:User[], title:string}>(),{
   users:()=>[],// in arrays and object use factory function to return the value
   title:''
})
© www.soinside.com 2019 - 2024. All rights reserved.