본문으로 건너뛰기
cccskills
무료GitHub에 공개

typescript

TypeScript strict patterns and best practices. Trigger: When writing TypeScript code - types, interfaces, generics.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills스타 660(GitHub 660 + cccskills 0)

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md2.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Const Types Pattern (REQUIRED)

// ✅ ALWAYS: Create const object first, then extract type
const STATUS = {
  ACTIVE: "active",
  INACTIVE: "inactive",
  PENDING: "pending",
} as const;

type Status = (typeof STATUS)[keyof typeof STATUS];

// ❌ NEVER: Direct union types
type Status = "active" | "inactive" | "pending";

Why? Single source of truth, runtime values, autocomplete, easier refactoring.

Flat Interfaces (REQUIRED)

// ✅ ALWAYS: One level depth, nested objects → dedicated interface
interface UserAddress {
  street: string;
  city: string;
}

interface User {
  id: string;
  name: string;
  address: UserAddress;  // Reference, not inline
}

interface Admin extends User {
  permissions: string[];
}

// ❌ NEVER: Inline nested objects
interface User {
  address: { street: string; city: string };  // NO!
}

Never Use any

// ✅ Use unknown for truly unknown types
function parse(input: unknown): User {
  if (isUser(input)) return input;
  throw new Error("Invalid input");
}

// ✅ Use generics for flexible types
function first<T>(arr: T[]): T | undefined {
  return arr[0];
}

// ❌ NEVER
function parse(input: any): any { }

Utility Types

Pick<User, "id" | "name">     // Select fields
Omit<User, "id">              // Exclude fields
Partial<User>                 // All optional
Required<User>                // All required
Readonly<User>                // All readonly
Record<string, User>          // Object type
Extract<Union, "a" | "b">     // Extract from union
Exclude<Union, "a">           // Exclude from union
NonNullable<T | null>         // Remove null/undefined
ReturnType<typeof fn>         // Function return type
Parameters<typeof fn>         // Function params tuple

Type Guards

function isUser(value: unknown): value is User {
  return (
    typeof value === "object" &&
    value !== null &&
    "id" in value &&
    "name" in value
  );
}

Import Types

import type { User } from "./types";
import { createUser, type Config } from "./utils";

Keywords

typescript, ts, types, interfaces, generics, strict mode, utility types

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

ai-sdk-5

무료

Vercel AI SDK 5 patterns. Trigger: When building AI chat features - breaking changes from v4.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Angular architecture: Scope Rule, project structure, file naming, style guide. Trigger: When structuring Angular projects or deciding where to place components.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Angular core patterns: standalone components, signals, inject, control flow, zoneless. Trigger: When creating Angular components, using signals, or setting up zoneless.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Angular forms: Signal Forms (experimental) and Reactive Forms. Trigger: When working with forms, validation, or form state in Angular.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Angular performance: NgOptimizedImage, @defer, lazy loading, SSR. Trigger: When optimizing Angular app performance, images, or lazy loading.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Django REST Framework patterns. Trigger: When building REST APIs with Django - ViewSets, Serializers, Filters.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Gentleman-Programming의 스킬 모두 보기

이 스킬의 문제 신고