typescript - Chyby při typování vlastností pomocí rozhraní ve Vue 3 (Vue: Nepopisované volání funkcí nemusí přijímat typové argumenty.)
Chci typovat props pomocí rozhraní, toto je můj kód a funguje správně. Ale:
defineProps<Props>();
Je zvýrazněno touto chybou (Vue: Neotipované volání funkcí nemusí přijímat typové argumenty.)
<script setup lang="ts">
import type { Client } from "@/clients/interfaces/client.interface";
interface Props {
clients: Client[];
}
const props = defineProps<Props>();
</script>
Čtením a hledáním jsem se pokusil nakonfigurovat .eslintrc s
env: {
'vue/setup-compiler-macros': true
}
a instalace "@vue/eslint-config-typescript": "^12.0.0"
Používám WebStorm, nevím, jestli je to relevantní. Děkuji za pomoc.
Odpověď č. 1
V mém případě nastavení IDE ukazovalo na nesprávný TypeScript. Jen se ujistěte, že nastavení TypeScriptu v IDE ukazuje na správnou verzi:
Odpověď č. 2
Podle dokumentace je syntaxe použitá v popisu problému správná, ale ESLint ji nemá rád.
Řešení, které jsem implementoval: Jedna z dalších možností v dokumentaci, např. z kódu:
<script setup lang="ts">
interface Book {
title: string
author: string
year: number
}
const props = defineProps<{
book: Book
}>()
</script>
Tímto způsobem nedostanu chybu ESLint, mohu deklarovat typ vlastnosti s odpovídajícím rozhraním a bez zdlouhavosti deklarování každé vlastnosti s jejím typem a požadavkem atd.
