實際上,我閱讀了某人的代碼,他們使用 defineProps<({})>()語法定義了道具,我對此進行了研究,但沒有找到任何可以幫助我理解這種語法的東西。
我如何定義道具
defineProps({
})
其他開發者如何定義道具
defineProps<({
})>()
我想知道這兩種語法有什么區別。
提前致謝
我實際上不知道在 Vue 3 腳本設定中定義道具的兩種不同語法。所以,我試著問一個問題,以便我能理解這兩種語法。
uj5u.com熱心網友回復:
區別在于語言 ( Javascript/ TypeScript)。
JS(弱型別):
<script setup>
const props = defineProps({
foo: String,
bar: Number
})
</script>
TS(強型別):
<script setup lang="ts">
const props = defineProps<{
foo: string
bar?: number
}>()
</script>
所以在TypeScript你需要告訴型別,而JavaScript你不需要。
相關檔案: https ://vuejs.org/guide/typescript/composition-api.html
uj5u.com熱心網友回復:
在尖括號內,您指定props您在組件中收到的通用型別(此語法在 typescript 而不是 javascript 上有效)
例如,您收到age和name道具。
使用 javascript
defineProps({
age: number,
name: string,
})
使用 typescript,您可以執行與 javascript 相同的操作,但如果存在型別不匹配,您將在運行時收到警告,或者通過泛型定義型別,在編譯時出現錯誤
const props = defineProps<{
age: number,
name: string
}>()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/524990.html
上一篇:如何關閉一個視窗
