Skip to main content

typescript-style

Apply TypeScript style rules that prefer checked literal typing with satisfies and as const satisfies over unsafe assertions. Use when writing or reviewing TypeScript or TSX code, test fixtures, typed object literals, mocks, config objects, or table-driven cases.

معلومات المصدر

المستودع
ryoppippi/dotfiles
آخر نشاط في المصدر
١٦ مايو ٢٠٢٦ في ١١:٥٧
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢٦٨
التفرعات
٥

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
typescript-style
description
Apply TypeScript style rules that prefer checked literal typing with satisfies and as const satisfies over unsafe assertions. Use when writing or reviewing TypeScript or TSX code, test fixtures, typed object literals, mocks, config objects, or table-driven cases.
# TypeScript Style ## Prefer `satisfies` Over `as` Avoid `as` type assertions and especially `as any`. Use `satisfies` when checking object literals, mocks, config objects, fixture data, and expected rows. Bad: ```ts const config = { port: 3000, host: 'localhost' } as ServerConfig; const ctx = { fetchDirent: vi.fn(), addReadHistory: vi.fn() } as any; ``` Good: ```ts const config = { port: 3000, host: 'localhost' } satisfies ServerConfig; const ctx = { fetchDirent: vi.fn(), addReadHistory: vi.fn() } satisfies MockContext; ``` ## Use `as const satisfies` Use `as const satisfies` for static literal data when preserving exact literal values or readonly tuples helps TypeScript catch mistakes. Good: ```ts const ROUTES = { home: '/', about: '/about', } as const satisfies Record<string, string>; ``` Good for table-driven cases: ```ts const reportCases = [ { type: 'daily', period: '2026-05-16' }, { type: 'monthly', period: '2026-05' }, ] as const satisfies readonly ReportCase[]; ``` ## Acceptable `as` Use `as` only when `satisfies` cannot express the operation, such as narrowing data returned from an external untyped boundary or adapting to an API that requires a nominal type. Keep it local and avoid `as any`. ## Prefer `@ts-expect-error` Use `@ts-expect-error` instead of `@ts-ignore`, and include a short explanation. `@ts-expect-error` fails when the underlying type error disappears, so stale suppressions are caught. Bad: ```ts // @ts-ignore import privateApi from 'some-package/private-api'; ``` Good: ```ts // @ts-expect-error Private runtime API has no public type declaration. import privateApi from 'some-package/private-api'; ```
عرض على GitHub