marius-townhouse

marius-townhouse/effective-typescript-skills

83 resources in this repository

GitHub
🎯83
2

🎯Skills83

🎯precise-any-variants🎯Skill

Teaches AI agents to prefer more precise variants of the 'any' type in TypeScript (such as any[], Record<string, any>, and () => any) over plain 'any', preserving partial type safety while handling dynamic data.

precise-any-variants
🎯tsdoc-comments🎯Skill

AI skills derived from "Effective TypeScript" by Dan Vanderkam (2nd Edition) that teach coding assistants to resist common TypeScript anti-patterns and produce higher-quality code, following 83 specific best practices with Iron Rules and Pressure Resistance Protocols.

tsdoc-comments
🎯narrow-any-scope🎯Skill

AI skills derived from "Effective TypeScript" by Dan Vanderkam, teaching AI coding assistants 83 specific ways to write better TypeScript by resisting common anti-patterns with Iron Rules and Pressure Resistance Protocols.

narrow-any-scope
🎯exhaustiveness-checking🎯Skill

Skill

exhaustiveness-checking
🎯module-by-module-migration🎯Skill

Skill

module-by-module-migration
🎯tsconfig-options🎯Skill

Skill

tsconfig-options
🎯code-gen-independent🎯Skill

Skill

code-gen-independent
🎯editor-interrogation🎯Skill

Skill

editor-interrogation
🎯exclusive-or-properties🎯Skill

Skill

exclusive-or-properties
🎯limit-any-type🎯Skill

Skill

limit-any-type
🎯domain-language-types🎯Skill

Skill

domain-language-types
🎯precise-string-types🎯Skill

Skill

precise-string-types
🎯prefer-type-annotations🎯Skill

Skill

prefer-type-annotations
🎯limit-optional-properties🎯Skill

Skill

limit-optional-properties
🎯iterate-objects-safely🎯Skill

Skill

iterate-objects-safely
🎯ts-check-jsdoc-experiment🎯Skill

Skill

ts-check-jsdoc-experiment
🎯evolving-types🎯Skill

Skill

evolving-types
🎯use-readonly🎯Skill

Skill

use-readonly
🎯typescript-devdependencies🎯Skill

Skill

typescript-devdependencies
🎯unify-types🎯Skill

Skill

unify-types
🎯type-safe-monkey-patching🎯Skill

Skill

type-safe-monkey-patching
🎯tagged-unions🎯Skill

Skill

tagged-unions
🎯allowjs-mixing🎯Skill

Skill

allowjs-mixing
🎯currying-inference🎯Skill

Skill

currying-inference
🎯prefer-unknown-over-any🎯Skill

Skill

prefer-unknown-over-any
🎯structural-typing🎯Skill

Skill

structural-typing
🎯dry-types🎯Skill

Skill

dry-types
🎯imprecise-over-inaccurate🎯Skill

Skill

imprecise-over-inaccurate
🎯ecmascript-over-typescript-features🎯Skill

Skill

ecmascript-over-typescript-features
🎯callback-this-type🎯Skill

Skill

callback-this-type
🎯write-modern-javascript🎯Skill

Skill

write-modern-javascript
🎯excess-property-checking🎯Skill

Skill

excess-property-checking
🎯codegen-over-complex-types🎯Skill

Skill

codegen-over-complex-types
🎯dom-hierarchy🎯Skill

Skill

dom-hierarchy
🎯hide-unsafe-assertions🎯Skill

Skill

hide-unsafe-assertions
🎯branded-types🎯Skill

Skill

branded-types
🎯soundness-traps🎯Skill

Skill

soundness-traps
🎯noimplicitany-completion🎯Skill

Skill

noimplicitany-completion
🎯type-vs-interface🎯Skill

Skill

type-vs-interface
🎯different-variables-types🎯Skill

Skill

different-variables-types
🎯type-checking-vs-testing🎯Skill

Skill

type-checking-vs-testing
🎯type-value-space🎯Skill

Skill

type-value-space
🎯variadic-tuple-types🎯Skill

Skill

variadic-tuple-types
🎯no-type-in-docs🎯Skill

Skill

no-type-in-docs
🎯three-versions-types🎯Skill

Skill

three-versions-types
🎯avoid-wrapper-types🎯Skill

Skill

avoid-wrapper-types
🎯runtime-type-reconstruction🎯Skill

Skill

runtime-type-reconstruction
🎯conditional-types-over-overloads🎯Skill

Skill

conditional-types-over-overloads
🎯record-types-sync🎯Skill

Skill

record-types-sync
🎯understand-type-widening🎯Skill

Skill

understand-type-widening
🎯type-display-attention🎯Skill

Skill

type-display-attention
🎯mirror-types🎯Skill

Skill

mirror-types
🎯compiler-performance🎯Skill

Skill

compiler-performance
🎯type-coverage🎯Skill

Skill

type-coverage
🎯create-objects-all-at-once🎯Skill

Skill

create-objects-all-at-once
🎯functional-constructs-types🎯Skill

Skill

functional-constructs-types
🎯test-your-types🎯Skill

Skill

test-your-types
🎯tail-recursive-generics🎯Skill

Skill

tail-recursive-generics
🎯push-null-to-perimeter🎯Skill

Skill

push-null-to-perimeter
🎯source-maps-debugging🎯Skill

Skill

source-maps-debugging
🎯module-augmentation🎯Skill

Skill

module-augmentation
🎯no-null-in-aliases🎯Skill

Skill

no-null-in-aliases
🎯consistent-aliases🎯Skill

Skill

consistent-aliases
🎯distinct-special-values🎯Skill

Skill

distinct-special-values
🎯valid-state-types🎯Skill

Skill

valid-state-types
🎯generics-as-functions🎯Skill

Skill

generics-as-functions
🎯liberal-accept-strict-return🎯Skill

Skill

liberal-accept-strict-return
🎯types-as-sets🎯Skill

Skill

types-as-sets
🎯accurate-environment-model🎯Skill

Skill

accurate-environment-model
🎯index-signature-alternatives🎯Skill

Skill

index-signature-alternatives
🎯type-narrowing🎯Skill

Skill

type-narrowing
🎯ts-js-relationship🎯Skill

Skill

ts-js-relationship
🎯template-literal-types🎯Skill

Skill

template-literal-types
🎯context-type-inference🎯Skill

Skill

context-type-inference
🎯avoid-repeated-params🎯Skill

Skill

avoid-repeated-params
🎯avoid-numeric-index🎯Skill

Skill

avoid-numeric-index
🎯control-union-distribution🎯Skill

Skill

control-union-distribution
🎯export-public-types🎯Skill

Skill

export-public-types
🎯async-over-callbacks🎯Skill

Skill

async-over-callbacks
🎯function-type-expressions🎯Skill

Skill

function-type-expressions
🎯avoid-unnecessary-type-params🎯Skill

Skill

avoid-unnecessary-type-params
🎯avoid-anecdotal-types🎯Skill

Skill

avoid-anecdotal-types
🎯avoid-inferable-annotations🎯Skill

Skill

avoid-inferable-annotations