Avatar ·

重写 TypeScript .d.ts 文件中声明的接口属性类型

大家好!我是 TypeScript 新手,在使用外部库时遇到了问题。我有一个库(例如 `express` 或 `mongoose`),它在自己的类型声明文件(`.d.ts`)中定义了一个接口,比如 `Request`。这个接口中有一个 `user` 属性,默认类型是 `any` 或 `Express.User | undefined`。我需要在项目中重写这个属性,使其具有具体类型,例如 `{ id: string; name: string; role: 'admin' | 'user' }`。 问题是我不能直接修改库的 `.d.ts` 文件——这是不好的做法,而且更新库后我的更改会丢失。我尝试创建自己的接口来扩展原始接口,但 TypeScript 会报类型冲突或看不到我的重写。 以下是代码示例: ```typescript // 在 node_modules/@types/express/index.d.ts 中(假设) interface Request { user?: any; // ... 其他属性 } // 我的文件 types/express.d.ts import {