sta*_*eth 11 typescript vue.js
从设置方法中,使用defineProps
我可以使用
const props = defineProps<{tabs: Tab[]}> = ()
Run Code Online (Sandbox Code Playgroud)
Tab[]
这让我可以打开类型props.tabs
但是,如果我想指定ComponentObjectPropsOptions
,我相信语法是
const props = defineProps = ({
type: Array, //can not use Tab[] here
required: true,
validator: ...
})
Run Code Online (Sandbox Code Playgroud)
但使用这种语法我失去了我的类型props.tabs
:(
Cra*_*ger 22
您需要使用该PropType
实用程序来对数组进行类型转换。
https://vuejs.org/api/utility-types.html#proptype-t
const props = defineProps({
tabs: {
type: Array as PropType<Tab[]>,
required: true,
validator: ...
},
})
Run Code Online (Sandbox Code Playgroud)
或者通过将 props 的类型作为泛型传递给 DefineProps 来使用仅类型 prop 声明,而不是将 props 对象作为参数传递。
const props = defineProps<{
tabs: Tab[]
}>()
Run Code Online (Sandbox Code Playgroud)
Nuxt3,设置,lang=ts
import {ComponentObjectPropsOptions} from "vue";
interface Props {
foo: string
bar?: number
}
const props = defineProps<ComponentObjectPropsOptions<Props>>({
foo: {
type: String,
required: true,
validator(value: unknown): boolean {
return true
}
},
bar: Number
})
Run Code Online (Sandbox Code Playgroud)
Vue3 (Vite)、设置、lang-ts
谢谢@Daniel,我必须从你的答案中扩充代码才能在我的环境中有效。
import type { ComponentObjectPropsOptions } from "vue";
export interface Props {
foo: string
bar?: number
}
const props = defineProps<ComponentObjectPropsOptions<Props>>({
foo: {
type: String,
required: true,
validator(value: unknown): boolean {
return true
}
},
bar: Number
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35680 次 |
最近记录: |