← 返回目录

第 6 卷

第 6 / 6 卷日期:

1// 新建 typings/custom.d.ts 2declare module "my-js-lib" {

3// 声明库的导出类型

4export function add(a: number, b: number): number;
5export const PI: number;
6}

7 8// 在 TS 中使用

9import { add, PI } from "my-js-lib";

10console.log(add(1, 2)); // 有类型提示,无报错

  1. 允许任意类型(临时方案):

若无需严格类型检查,可声明模块为 any 类型:

Code block

1declare module "my-js-lib"; // 所有导入的类型为 any

声明文件的核心语法

  • declare module:声明模块;
  • declare function:声明函数;
  • declare class:声明类;
  • declare const/let/var:声明变量;
  • interface/type:声明自定义类型。

总结

  1. TS 核心价值:静态类型 + 兼容 JS,提升大型项目可维护性;
  2. 接口 vs 类型别名:接口侧重对象/类结构,支持合并;类型别名支持任意类型,更灵活;
  3. 泛型:类型参数化,提升代码复用性;
  4. 高级类型(联合/交叉/映射/条件):基于现有类型创建新类型,适配复杂场景;
  5. 类型守卫:运行时缩小类型范围,避免类型断言;
全站分卷索引 · 6 卷
  1. 1第 1 卷
  2. 2第 2 卷
  3. 3第 3 卷
  4. 4第 4 卷
  5. 5第 5 卷
  6. 6第 6 卷