Ich verwende Vue 3 und die Composition API und versuche derzeit, Typescript zu meinem Projekt hinzuzufügen.
Ich habe eine ?globale Eingabe“-Komponente, die ich aufrufen kann, um jede gewünschte Eingabe zu erstellen. Die Komponente rendert dann eine weitere Eingabekomponente basierend auf der Requisite ?inputType“. Ich kann beispielsweise eine globale Eingabe wie folgt verwenden:
<InputBlock input-type="number" :value="15" :min="0" :max="100" /> <InputBlock input-type="check" :value="true" />
InputBlock sieht so aus:
<script setup lang="ts"> import InputNumber from "./InputNumber.vue" import InputCheck from "./InputCheck.vue" const props = defineProps({ value: { type: [Boolean, Number], required: true }, // Here the value can be type Boolean|Number inputType: { type: String, required: true }, // ... }) </script> <template> <InputCheck v-if="intputType === 'check'" :value="value" /> <InputNumber v-if="intputType === 'number'" :value="value" /> <!-- Here it is supposed to be Number --> </template>
Meiner InputNumber
sieht so aus:
<script setup lang="ts"> const props = defineProps({ value: { type: Number, required: true }, // ... }} </script>
Wie Sie bemerkt haben, InputBlock
組件可以接收不同類型的值,因?yàn)樵撝祵⒂刹煌淖咏M件使用。但每個(gè)子組件的 value
屬性只能接受一種類型。在我的 InputBlock
中,我收到此錯(cuò)誤: Type 'number | boolean” 不可分配給類型“number”。類型“boolean”不可分配給類型“number”.
.
Wissen Sie, wie ich Typescript InputCheck
mitteilen kann, dass der übergebene Wert eine Zahl statt einer Zahl|Boolean sein wird? Gibt es eine M?glichkeit, eine Variable zu ?erzwingen“ oder ?umzuwandeln“? Oder mache ich hier etwas falsch?
它返回一個(gè)錯(cuò)誤,因?yàn)榇蜃指宀恢?inputType.type 和值類型是相關(guān)的。
你可以試試
或者這個(gè)