computed — typed computed properties.
1import { ref, computed } from "vue"23const count = ref(0)45// Basic computed6const doubled = computed<number>(() => count.value * 2)78// Complex computed9interface User {10 id: number11 name: string12 age: number13}1415const users = ref<User[]>([])1617const adults = computed<User[]>(() =>18 users.value.filter(user => user.age >= 18)19)2021const totalCount = computed(() => users.value.length)
With getters/setters:
1const fullName = computed<{2 get: () => string3 set: (value: string) => void4}>({5 get: () => `${firstName.value} ${lastName.value}`,6 set: (value) => {7 [firstName.value, lastName.value] = value.split(" ")8 }9})