> 웹 프론트엔드 > JS 튜토리얼 > 이와 같은 타입 스크립트 유형을 사용하지 마십시오. 대신 맵 패턴을 사용하십시오

이와 같은 타입 스크립트 유형을 사용하지 마십시오. 대신 맵 패턴을 사용하십시오

DDD
풀어 주다: 2025-01-29 16:31:08
원래의
732명이 탐색했습니다.
이 타이프 스크립트 구현은 유연성과 유지 관리를 향상시키기위한 리팩토링 프로세스를 보여줍니다. 명확성과 개선 된 흐름을 위해 그것을 다시 표현합시다 맵 패턴으로 TypeScript 유연성 향상 : 사례 연구 최근 프로젝트에서, 나는 기능적이지만 유연성이 부족한 TypeScript 구현을 만났습니다. 이 게시물은 문제, 맵 패턴을 사용한 솔루션 및이 접근법이 코드 유지 가능성을 향상시키는 방법에 대해 자세히 설명합니다. 목차

초기 문제

원래 접근법의 한계 맵 패턴 솔루션 구현 클린 코드 구현 허용 된 반응으로 유형 안전을 시행합니다 시각적 비교

결론

1. 초기 문제 원래 코드는 이러한 TypeScript 유형을 사용했습니다

    이 유형은 스코어링 함수에 사용되었습니다 :
  1. 2. 원래 접근법의 한계
  2. 새로운 반응을 추가하려면 여러 파일에 걸쳐 수정이 필요했습니다 (, 및 잠재적으로 다른 사람들). 이 긴밀한 커플 링은 오류의 위험을 증가시키고 코드를 유지 관리하기가 덜 만들었습니다. 3. 맵 패턴 솔루션 구현
  3. 이를 해결하기 위해, 유사 구조를 사용한보다 역동적 인 접근법이 구현되었습니다.
  4. 4. 클린 코드 구현
  5. 함수는 이제
  6. : 를 사용합니다
  7. 5. 허용 된 반응으로 유형 안전을 시행합니다
  8. 는 유연성을 제공하지만 유형 안전을 유지하는 것이 중요합니다.
Union 유형은 허용 반응 키를 제한하여 임의 반응의 추가를 방지합니다.

6. 시각적 비교

7. 결론

이 리팩토링 된 접근 방식은 유연성과 유형 안전 균형을 유지합니다. 새로운 반응을 추가하려면 유형을 업데이트하면 유지 관리 가능성을 크게 향상시키고 원래의 밀접하게 결합 된 설계에 비해 오류의 위험을 줄입니다. a 유형을 사용하면
<code class="language-typescript">// Reaction.ts
export type Reaction = {
  count: number;
  percentage: number;
};

// FinalResponse.ts
import { Reaction } from './Reaction';

export type FinalResponse = {
  totalScore: number;
  headingsPenalty: number;
  sentencesPenalty: number;
  charactersPenalty: number;
  wordsPenalty: number;
  headings: string[];
  sentences: string[];
  words: string[];
  links: { href: string; text: string }[];
  exceeded: {
    exceededSentences: string[];
    repeatedWords: { word: string; count: number }[];
  };
  reactions: {
    likes: Reaction;
    unicorns: Reaction;
    explodingHeads: Reaction;
    raisedHands: Reaction;
    fire: Reaction;
  };
};</code>
로그인 후 복사
객체의 런타임 오버 헤드 없이도 맵의 이점을 효과적으로 모방합니다.

위 내용은 이와 같은 타입 스크립트 유형을 사용하지 마십시오. 대신 맵 패턴을 사용하십시오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿