mcpField
N
noimplicitany-completion

noimplicitany-completion

github.com/marius-townhouse开发645 次安装38 周前更新
代码仓库

关于 noimplicitany-completion

这项 TypeScript 技能将启用 `noImplicitAny` 并消除隐式 `any` 视为完成迁移的必要步骤,适合收尾 TypeScript 采用过程和编译器配置的开发者。

主要功能

  1. 01启用 `noImplicitAny`
  2. 02消除隐式 `any` 类型
  3. 03检查严格编译器设置
  4. 04完成 TypeScript 迁移

适用场景

  1. 01完成 TypeScript 迁移
  2. 02配置 `tsconfig` 进行严格检查
  3. 03提升代码库的类型安全性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/marius-townhouse/effective-typescript-skills --skill noimplicitany-completion

安装后在 Claude Code 中输入/noimplicitany-completion确认已加载。

详细介绍

启用 noImplicitAny 后,才算完成迁移

概述

noImplicitAny 是 TypeScript 类型安全的基石。禁用时,如果 TypeScript 无法推断出类型,就会悄悄将变量设为 any 类型。这违背了使用 TypeScript 的初衷。在启用 noImplicitAny 并消除所有隐式 any 之前,不要认为迁移已经完成。

何时使用此技能

  • 完成 TypeScript 迁移
  • 启用严格模式
  • 完善 tsconfig 配置
  • 确保类型安全
  • 完成 TypeScript 的采用

铁律

启用 noImplicitAny,才能完成 TypeScript 迁移。消除所有隐式 any,确保完整的类型安全。

示例

// 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);
}

启用严格模式

{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictBindCallApply": true,
    "strictPropertyInitialization": true,
    "noImplicitThis": true,
    "alwaysStrict": true
  }
}

参考资料

  • Dan Vanderkam 著《Effective TypeScript》第 2 版
  • 条目 83:启用 noImplicitAny 后,才算完成迁移

评论

支持 Markdown