🎯

noimplicitany-completion

🎯Skill

from marius-townhouse/effective-typescript-skills

VibeIndex|
What it does

Eliminates implicit `any` types during TypeScript migration, enforcing strict type safety and completing the adoption process.

πŸ“¦

Part of

marius-townhouse/effective-typescript-skills(83 items)

noimplicitany-completion

Installation

Quick InstallInstall with npx
npx skills add marius-townhouse/effective-typescript-skills --all
Quick InstallInstall with npx
npx skills add marius-townhouse/effective-typescript-skills -s prefer-unknown-over-any exhaustiveness-checking
Quick InstallInstall with npx
npx skills add marius-townhouse/effective-typescript-skills -a opencode claude-code
Quick InstallInstall with npx
npx skills add marius-townhouse/effective-typescript-skills -l
git cloneClone repository
git clone https://github.com/marius-townhouse/effective-typescript-skills.git
πŸ“– Extracted from docs: marius-townhouse/effective-typescript-skills
1Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Use when finishing TypeScript migration. Use when enabling strict mode. Use when finalizing tsconfig. Use when ensuring type safety. Use when completing adoption.

Overview

# Don't Consider Migration Complete Until You Enable noImplicitAny

Overview

noImplicitAny is the cornerstone of TypeScript's type safety. When disabled, TypeScript silently gives variables the any type when it can't infer a type. This defeats the purpose of TypeScript. Don't consider your migration complete until you've enabled noImplicitAny and eliminated all implicit anys.

When to Use This Skill

  • Finishing TypeScript migration
  • Enabling strict mode
  • Finalizing tsconfig configuration
  • Ensuring type safety
  • Completing TypeScript adoption

The Iron Rule

Enable noImplicitAny to complete your TypeScript migration. Eliminate all implicit anys for full type safety.

Example

```typescript

// With noImplicitAny: false (default during migration)

function parse(data) {

// data is implicitly any - no error!

return data.json();

}

// With noImplicitAny: true

function parse(data) {

// Error: Parameter 'data' implicitly has an 'any' type

return data.json();

}

// Fixed with explicit type

function parse(data: string): unknown {

return JSON.parse(data);

}

```

Enabling Strict Mode

```json

{

"compilerOptions": {

"noImplicitAny": true,

"strictNullChecks": true,

"strictFunctionTypes": true,

"strictBindCallApply": true,

"strictPropertyInitialization": true,

"noImplicitThis": true,

"alwaysStrict": true

}

}

```

Reference

  • Effective TypeScript, 2nd Edition by Dan Vanderkam
  • Item 83: Don't Consider Migration Complete Until You Enable noImplicitAny

More from this repository10

🎯
tsdoc-comments🎯Skill

Generates TypeScript documentation comments (TSDoc) to explain public APIs, complex types, and provide comprehensive code documentation with IDE tooltips.

🎯
async-over-callbacks🎯Skill

Transforms callback-based asynchronous code into clean, readable async/await patterns for better type flow and error handling.

🎯
type-safe-monkey-patching🎯Skill

Enables type-safe runtime extension of global objects and DOM elements in TypeScript without sacrificing type checking or using `as any`.

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

Efficiently initializes multiple TypeScript objects simultaneously using concise object literal syntax and spread operators.

🎯
module-by-module-migration🎯Skill

Guides developers through systematic TypeScript module migration, breaking down complex refactoring into manageable, incremental steps.

🎯
ts-js-relationship🎯Skill

Explains TypeScript's relationship to JavaScript, highlighting how it adds static typing and catches errors before runtime while remaining fully compatible with JavaScript code.

🎯
code-gen-independent🎯Skill

Generates JavaScript code despite TypeScript type errors and demonstrates that TypeScript types are erased at runtime, requiring alternative type checking strategies.

🎯
context-type-inference🎯Skill

Helps restore precise type context when extracting values, preventing type inference errors through annotations, const assertions, and type preservation techniques.

🎯
precise-string-types🎯Skill

Enforces strict string type constraints and prevents unintended string type conversions in TypeScript projects.

🎯
type-display-attention🎯Skill

Displays and simplifies complex TypeScript types to improve IDE readability and developer experience.