第 6 卷
1// 新建 typings/custom.d.ts 2declare module "my-js-lib" {
3// 声明库的导出类型
| 4 | export function add(a: number, b: number): number; |
|---|---|
| 5 | export const PI: number; |
| 6 | } |
7 8// 在 TS 中使用
9import { add, PI } from "my-js-lib";
10console.log(add(1, 2)); // 有类型提示,无报错
- 允许任意类型(临时方案):
若无需严格类型检查,可声明模块为 any 类型:
Code block
1declare module "my-js-lib"; // 所有导入的类型为 any
声明文件的核心语法
- declare module:声明模块;
- declare function:声明函数;
- declare class:声明类;
- declare const/let/var:声明变量;
- interface/type:声明自定义类型。
总结
- TS 核心价值:静态类型 + 兼容 JS,提升大型项目可维护性;
- 接口 vs 类型别名:接口侧重对象/类结构,支持合并;类型别名支持任意类型,更灵活;
- 泛型:类型参数化,提升代码复用性;
- 高级类型(联合/交叉/映射/条件):基于现有类型创建新类型,适配复杂场景;
- 类型守卫:运行时缩小类型范围,避免类型断言;