TypeDraft: 패턴 일치 DSL 사용

typedraft 0.2.5 (draft-dsl-match 0.2.0 사용)에서 DSL로 패턴 일치를 완벽하게 지원합니다.

import { MatchDSL } from "draft-dsl-match";

type Vector1 = { x: number };
type Vector2 = { x: number; y: number };
type Vector3 = {
  x: number;
  y: number;
  z: number;
};
type Vector = Vector1 | Vector2 | Vector3;

const vector: Vector = { x: 1 };
const result = Λ<string>("match")` ${vector as Vector} 
  ${{ x: 1, y: 1, z: 1 }} -> ${"vector3"}
  ${{ x: 2, y: 1 }} -> ${"vector2"}
  ${{ x: 1 }} -> ${"vector1"}
`;

console.log(result); // "vector1"
Λ<string>("match")...MatchDSL... 로 번역되며, ts-pattern은 패턴 일치에 대한 런타임 지원을 제공합니다.

typedraft에 대한 문서는 typedraft-docs , 패턴 일치의 예: draft-dsl-match , 잘 테스트되었습니다: Test cases as examples 에서 찾을 수 있습니다.

dsl-match-demo에서 시도하십시오! 어떤 피드백이든 환영합니다.

좋은 웹페이지 즐겨찾기