Skip to content

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.