Introduction

Nuxt Typed Vuex is made up of two packages:

  1. typed-vuex - a typed store accessor with helper functions, with no Nuxt dependencies
  2. nuxt-typed-vuex - a Nuxt module that auto-injects this accessor throughout your project

Why another package?

Typing vanilla Vuex is complicated. Many people choose a class-based approach with Typescript decorators, but this can cause issues. Although Vuex provides limited type definitions for the store itself, it's complicated to access it in a type-safe way.

nuxt-typed-vuex was developed to address this problem. It features:

store definition with vanilla Vuex code
strongly typed accessor
fast performance
small footprint
compatible with Nuxt
access this.$axios and the app/store instance from within actions
minimal setup/boilerplate

Image showing autocomplete on this.$accessor

Image showing autocomplete on commit within store

Alternatives

If you would prefer a class-based approach, good options include vuex-module-decorators and vuex-class-component.