TypeScript Composables
Annotate parameters and return types of composables for great DX. This lesson covers practical patterns, syntax, and mistakes to avoid.
Typing Composables
Annotate parameters and return types of composables for great DX.
Use generics for data-fetching helpers.
function useFetch<T>(url: MaybeRefOrGetter<string>) {
const data = ref<T | null>(null)
// ...
return { data }
}
Generic fetch composable sketch.
MaybeRef
Accept Ref/getter/values via `toValue`.
- Handle loading and errors.
- Keep composables tested.
- Prefer TypeScript when you can.
- Measure before optimizing.
TypeScript Composables Cheatsheet
Quick reference for patterns covered in this lesson.
| Item | Example | Purpose |
| generics | <T> | Reuse |
| MaybeRefOrGetter | inputs | Flex |
| ReturnType | infer | Exports |
| as const | tuples | Narrow |
| pinia | typed | Stores |
| vue-tsc | check | CI |
Public API
Export types next to composables used across packages.
Common Mistakes
- Implicit any returns.
- Overly wide
object types.
Key Takeaways
- TypeScript Composables shows up often in Vue apps.
- Practice with a demo.
- Prefer clear APIs.
- Read official docs for edge cases.
Pro Tip
If a composable returns many fields, type an interface for the result.