Vue 3 memiliki dukungan TypeScript yang sangat baik, terutama dengan <script setup>.
Props dengan TypeScript:
<script setup lang="ts">
interface Props {
nama: string
umur: number
isAdmin?: boolean
}
const props = defineProps<Props>()
// atau dengan default:
const props = withDefaults(defineProps<Props>(), {
isAdmin: false
})
</script>
Emits dengan TypeScript:
<script setup lang="ts">
const emit = defineEmits<{
(e: "update", value: string): void
(e: "delete", id: number): void
}>()
</script>
Ref dengan TypeScript:
<script setup lang="ts">
const count = ref<number>(0)
const user = ref<User | null>(null)
const items = ref<string[]>([])
</script>
Computed dengan TypeScript:
<script setup lang="ts">
const fullName = computed<string>(() => {
return `${firstName.value} ${lastName.value}`
})
</script>
TypeScript + Vue = lebih sedikit bug dan developer experience yang jauh lebih baik.