typescript - 如何在 TypeScript 中提供缺失的声明?

标签 typescript

如何在 TypeScript 中为静态类函数提供附加声明?例如,我将 Chrome Canary 与实验性 Object.observe() JavaScript 函数结合使用。为了使用它(不诉诸任何强制转换),我想声明 Object.observe 函数。我该怎么做?

declare ?; // What goes here?

var x = {};
Object.observe( x, ( update : any ) => { console.log("Hello"); } ); // Declaration needed

最佳答案

您需要创建一个界面:

interface Object {
  observe(beingObserved: any, callback: (update: any) => any) : void;
}

然后只需在 .ts 文件中引用该接口(interface)即可。从 0.8.1.1 开始,Intellisense 有点不稳定,但它可以工作并且会在编译期间强制执行契约(Contract)。

它还会突出显示您将 Object.observeAmbigously call expression - Could not choice重载 结合使用的地方,但它仍然会编译。

关于typescript - 如何在 TypeScript 中提供缺失的声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13847851/

相关文章:

node.js - Nest.Js 不接受任何更改

typescript - 别名与 Webpack 4 和 awesome-typescript 加载器不工作

javascript - 如何处理 typescript 中的状态?

javascript - 是否可以从同一项目中的外部 Javascript 代码访问 Angular 应用程序数据

AngularJS IDirectiveLinkFn 接口(interface)

angular - ViewChild 和 focus()

Typescript 有没有办法在 switch 中为 case 转换类型?

javascript - 将base64编码的字符串解码为xls

html - 在angular2中覆盖子div的CSS属性

javascript - 在 Angular 的 innerHTML 中使用字符串插值