首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用typescript在vue3中手动定义道具类型

如何用typescript在vue3中手动定义道具类型
EN

Stack Overflow用户
提问于 2020-08-10 14:36:56
回答 2查看 5.7K关注 0票数 6

我能做到

代码语言:javascript
运行
复制
defineComponent({
  props: {
    name: { type: String as PropType<string> }
  }
})

告诉vue3我的props类型是{ name: string },但是如果我有几个组件具有相同的props类型,我如何共享定义?

如果我在中定义道具:

代码语言:javascript
运行
复制
const props = {
  name: String as PropType<string>
}

然后像这样使用它:

代码语言:javascript
运行
复制
defineComponent({
  props: props,
})

它不能工作,我在道具的设置函数中得到的类型不正确。

EN

回答 2

Stack Overflow用户

发布于 2021-05-22 04:29:47

defineComponent提供的props选项是一个纯js对象,仅用于类型注释目的,因此您可以使用javascript中的任何技术在对象之间共享结构:

代码语言:javascript
运行
复制
// in common.ts
export const commonProps = {
  name: { type: String as PropType<string> }
}

// in your component.vue
import commonProps from "./common.ts";

defineComponent({
  props:{
    ...commonProps,

    extra: { }

  }
})
票数 0
EN

Stack Overflow用户

发布于 2020-09-11 23:01:22

如果您正在使用带有Vue 2的组合API来准备切换到Vue 3,那么您必须使用该包中的PropType,而不是vue包。

代码语言:javascript
运行
复制
// Wrong for Vue 2
import Vue, { PropType } from 'vue'
import { defineComponent } from '@vue/composition-api'

// Right for Vue 2
import { defineComponent, PropType } from '@vue/composition-api'
票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63335247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档