[typescript] Vuex 상태 관리에 타입스크립트 적용

본 문서에서는 Vuex에서 상태 관리에 타입스크립트를 적용하는 방법을 살펴보겠습니다.

Vuex와 타입스크립트

Vuex는 Vue.js 애플리케이션에 대한 중앙 집중식 저장소를 제공하는 상태 관리 패턴 라이브러리입니다. 여러 컴포넌트 간의 상태를 보다 예측 가능하고 유지보수 가능하도록 관리합니다. 그리고 타입스크립트는 정적 타입 검사를 제공하는 JavaScript의 확장입니다. 타입스크립트를 사용함으로써 코드의 안정성을 높일 수 있고 개발자의 에러를 사전에 감지할 수 있습니다.

Vuex와 타입스크립트의 통합

1. 상태(State)에 타입 적용하기

// store.ts
export interface RootState {
  count: number;
}

// moduleA.ts
interface ModuleAState {
  foo: string;
  bar: number;
}

// moduleB.ts
interface ModuleBState {
  baz: boolean;
}

export interface State extends RootState, ModuleAState, ModuleBState {}

위의 코드에서 RootState는 루트 상태 타입을 정의하고, ModuleAStateModuleBState는 모듈 A와 B의 각각의 상태 타입을 정의합니다. 이들을 합쳐서 State 인터페이스를 정의합니다.

2. 액션(Action)에 타입 적용하기

// actions.ts
import { ActionContext } from "vuex";

interface MyActionContext extends ActionContext<State, RootState> {
  dispatch: {
    someAction(): void;
  };
  commit: {
    someMutation(): void;
  };
}

const actions = {
  someAsyncAction({ commit }: MyActionContext) {
    // 비동기 액션
  },
};

결론

이제 Vuex 상태 관리에 타입스크립트를 적용하기 위한 기본적인 방법을 살펴보았습니다. 타입스크립트를 사용하여 코드의 안정성을 향상시키고 더욱 예측 가능하고 유지보수 가능한 코드를 작성할 수 있습니다.

참고 자료