技能 typescript-advanced-types
📦

typescript-advanced-types

安全

掌握 TypeScript 高级类型

也可从以下获取: wshobson

使用 TypeScript 强大的类型系统自信地构建类型安全应用程序。通过实际示例学习泛型、条件类型、映射类型和工具类型。

支持: Claude Codex Code(CC)
🥉 74 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“typescript-advanced-types”。 创建一个泛型合并函数,合并两个对象并保留它们的类型

预期结果:

function merge<T, U>(obj1: T, obj2: U): T & U { return { ...obj1, ...obj2 }; }

const result = merge({ name: 'John' }, { age: 30 });
// Type: { name: string } & { age: number }
// Usage: result.name (string), result.age (number)

正在使用“typescript-advanced-types”。 创建一个工具类型,使所有嵌套属性变为只读

预期结果:

type DeepReadonly<T> = {
readonly [P in keyof T]: T[P] extends object
? T[P] extends Function ? T[P] : DeepReadonly<T[P]>
: T[P];
};

// Usage: All nested properties become immutable at compile time

安全审计

安全
v1 • 2/25/2026

Static analyzer detected 76 patterns but all are false positives. The skill contains documentation-only content with TypeScript code examples in markdown format. No executable code, network calls, or security risks present. All detected patterns are from code snippets used for educational purposes.

2
已扫描文件
755
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
91
规范符合性

你能构建什么

类型安全的库开发

构建具有强类型保证的可重用库和框架,提供出色的开发者体验。

复杂 API 客户端设计

创建类型安全的 API 客户端,自动推断请求参数、响应类型和错误处理。

企业级应用架构

为具有复杂数据模型和状态管理的大型应用程序实现强健的类型系统。

试试这些提示

基础泛型函数
创建一个接受任意类型并返回相同类型的泛型函数。展示 TypeScript 如何自动推断类型以及如何显式指定类型。
用于验证的条件类型
设计一个条件类型来检查一个类型是否继承另一个类型。使用它为字符串、数字和数组等常见数据类型创建类型级验证系统。
用于 API 响应的映射类型
创建一个映射类型,将 API 响应类型的所有属性转换为可选且只读。包含键重映射以添加 getter 方法。
类型安全的事件系统
使用泛型、条件类型和模板字面量类型实现完整的类型安全事件发射器。支持具有特定负载类型的多个事件类型。

最佳实践

  • 使用 unknown 代替 any 以强制执行操作前的类型检查
  • 优先使用 interface 定义对象形状,使用 type 定义联合类型和复杂类型
  • 利用 TypeScript 的类型推断,避免不必要的类型注解

避免

  • 过度使用 any 类型,这会破坏 TypeScript 的类型安全保证
  • 创建过于复杂的类型,会减慢编译速度并降低可读性
  • 忽略严格空值检查,可能导致生产环境中的运行时错误

常见问题

TypeScript 中 interface 和 type 有什么区别?
对对象形状使用 interface,可获得更好的错误消息和声明合并。对联合类型、交叉类型和复杂类型逻辑使用 type。两者都可以描述对象形状,但 interface 具有更好的可扩展性。
何时使用泛型而不是联合类型?
当需要类型灵活性同时保持输入和输出类型之间的关系时使用泛型。当值可以是几个特定类型之一但没有类型关系时使用联合类型。
TypeScript 中的条件类型是如何工作的?
条件类型使用 extends 关键字和类似三元运算符的语法:T extends U ? X : Y。它们支持基于条件选择类型的类型级逻辑,类似于类型层面的 if-else。
什么是映射类型,什么时候应该使用它们?
映射类型遍历属性键来转换现有类型。使用它们创建 Partial、Readonly 等变体,或创建在所有属性上一致应用的自定义转换。
如何测试我的 TypeScript 类型?
创建在编译时验证预期类型的类型断言辅助函数。使用类似 AssertEqual<T, U> 的模式,对于匹配的类型解析为 true。测试边界情况并确保类型错误在预期的地方发生。
模板字面量类型用于什么?
模板字面量类型创建具有模式匹配的基于字符串的类型。使用它们构建类型安全的字符串连接、路径构建器、事件名称,并强制执行一致的命名约定。