typescript - 是否可以覆盖本地模块的类型声明?
问题描述
我试图覆盖一个特定的打字稿模块对任何正在导入它的人的外观。
这是因为我有一些 webpack 规则实际上改变了这个模块在编译时的导出。
我在文件中有一个自定义模块声明custom.d.ts
:
declare module '*.worker' {
class WebpackWorker extends Worker {
constructor();
}
export default WebpackWorker;
}
然后我将此模块导入为
import MyWorker from './test.worker';
const worker = new MyWorker();
但是,我似乎无法让自定义模块声明识别出它属于我的 custom.d.ts 文件中声明的类型。有谁知道是否可以覆盖本地模块的导出类型?
解决方案
一种可能的解决方案是说 FileA.ts 有一个名为 Human 的导出,并且在 webpack 编译时 Human 将其名称更改为 Animal 是在该类中添加声明类型并导入类似...
export class Human {
bark() {
return "bark bark"
}
}
export declare class Animal extends Human {};
然后在 FileB.ts 中,您可以导入 Animal 并在类型安全的情况下使用它。
推荐阅读
- python - Python:将 .txt 附加到电子邮件
- node.js - 如何将十六进制字符串转换为 base64 以在 NodeJS 中保存图像
- opengl - 计算骨骼动画的最终骨骼变换
- c# - MongoDB C# 驱动程序:以不那么冗长的方式进行更新?
- python - 如何使用 Python 在目录中重新保存 excel 文件?
- assembly - 为什么在 AVR ASM 上使用 Z 寄存器访问程序存储器时要乘以 2
- gitlab - 如何使用“only”参数的不同键之间的 OR 关系有条件地执行 Git-Lab 管道作业
- javascript - 使用 CTR 模式问题对 crypto-js 进行加密和对节点加密进行解密
- python - 如何从 django docker 容器下载 csv 文件
- java - 更新 Mysql 数据库时无法在 Android 中更新我的用户界面