해결된 질문
작성
·
59
0
조금 강의 핵심과 동떨어지는 질문인것같아서 죄송합니다,
useReducer를 사용할때 reducer함수의 action.type에 대해 String 타입으로 기준이 잡히는거 보니깐 나중에 규모가 커지면 조금 불안할것 같아서요.
자바스크립트는 ENUM타입이 있는걸로 알고있는데 언급을 안하셔서 혹시 잘 안쓰는건가 싶어서 질문드립니다. String타입이 조건문의 기준이 되면 분명 프로젝트 규모가 커졌을때 발견되기힘든 런타임에러에 대한 걱정이 좀 있을것같아요
답변 2
0
안녕하세요 이정환입니다.
질문자님 말씀이 맞습니다. 규모가 커질 경우 분명히 문제가 발생할 수 있습니다. 따라서 보통의 프로젝트에서는 타입 정의가 가능한 TypeScript를 활용하는 편 입니다.
TypeScript에서는 action.type으로 사용할 값의 범위를 미리 정의해 둘 수 있습니다. 더 나아가 action.type 뿐만 아니라 action 객체로 사용될 수 있는 값의 범위를 아예 미리 정의해 둘 수 있습니다. 마치 자바의 강타입 시스템과 비슷하다고 이해하시면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. shion002님.
자바스크립트에는 기본적으로 TypeScript와 같이 명시적인 enum
타입이 존재하지 않습니다. 대신, 개발자들은 흔히 객체 혹은 다른 방법을 사용하여 유사한 패턴을 구현합니다. Enum 타입의 부재는 런타임 단계에서 오류를 줄이기 위한 문자열 기반의 타입 안전성을 충분히 제공하지 못할 수 있습니다. 이는 프로젝트의 규모가 커질수록 문제로 다가올 수 있습니다.
일반적으로, 이는 다음과 같은 방법으로 해결할 수 있습니다:
const ACTION_TYPES = {
ADD: 'ADD',
REMOVE: 'REMOVE'
};
enum ActionTypes {
ADD,
REMOVE
}
JavaScript로 작성된 기존 React 코드베이스에 비해 TypeScript를 사용하면 더 안전한 코딩이 가능하며, 특히 큰 규모의 프로젝트에서 유리합니다. 대부분의 최신 프로젝트에서는 TypeScript의 도입이 증가하고 있습니다. 따라서 TypeScript로의 마이그레이션도 고려해볼 만합니다.
추가적으로 궁금한 점이나 더 깊이 있는 학습이 필요하시면 아래와 같은 유사한 질문과 답변 링크를 참고해 보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다!