typescript - 打字稿声明合并库类型
问题描述
有人知道如何“扩展”(通过声明合并)接口的声明,在打字稿的库文件中声明的地方?
就我而言,我想扩展库lib.dom中构建的打字稿的接口HTMLCanvasElement。我知道声明合并是如何工作的,但我没有为接口 HTMLCanvasElement 获得正确的导入。
import {HTMLCanvasElement} from '<what.to.use.here>';
declare module '<what.to.use.here>'{
interface HTMLCanvasElement{
//add my stuff
}
}
谢谢 :)
解决方案
这些类型存在于全局命名空间中。如果您在脚本文件中(即不是模块),您可以重新声明它。如果你在一个模块中,你需要在global
不需要导入的情况下声明它。
declare global{
interface HTMLCanvasElement{
my:number
}
}
export var x = 1;// just to make this module
let c: HTMLCanvasElement;
c.animate // regular stuff
c.my //my stuff
推荐阅读
- vb.net - System.NullReferenceException:“对象引用未设置为对象的实例。”
- scheme - Racket 博士和 R5RS 方案:(当前目录)不起作用
- firebase - _app.default.messaging.notifications 不是通过迁移到 react-native-firebase v6 的功能
- javascript - 将条带js集成到react withnode中
- javascript - 将子元素附加到内容可编辑的 div 后,关注子元素
- django - Django 给出错误“当前路径 item/14/add_to_cart1/ 与其中任何一个都不匹配。”
- python - ibm watson 助手设置上下文变量
- reactjs - .map() 不是在上下文中更新状态时的函数
- react-native - 在另一个屏幕上调整组件大小
- javascript - 如何在 Javascript/jquery 中访问动态创建的 div 元素?