typescript - 无法将 'new' 与类型缺少调用或构造签名的表达式一起使用

标签 typescript types compiler-errors typescript-typings

如何在我的 console.log 中停止错误?

Cannot use 'new' with an expression whose type lacks a call or construct signature.


var audioContext = new window.AudioContext();

这是唯一的方法吗?
    var AudioContext = <any>window.AudioContext || <any>window.webkitAudioContext;
    var audioContext = new AudioContext();

最佳答案

默认情况下,这些全局 API 未在内置 typescript Window 中定义界面。但是您可以通过声明合并将其贴在窗口上,如下所示:

declare namespace window {
    const AudioContext:{
        new():AudioContext;
    }
}

然后,您应该能够正常使用它,例如:
var audioContext = new window.AudioContext();

关于typescript - 无法将 'new' 与类型缺少调用或构造签名的表达式一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40543009/

相关文章:

angular - Angular 如何处理 XSS 或 CSRF?

typescript - 模板文字表达式的无效类型 "string | null"。发送授权时

c# - 如何将非日期值格式化为日期值

java - 显示菜单编译错误

c++ - 使用自定义比较器函数作为模板参数的编译器错误

typescript 字符串文字联合类型

javascript - 如何在另一个 Observable 发出时停止发出的值?

c# - 作为参数传递的自定义类型

C++ 数组,数组转换不起作用

c++ - Using Declaration 和 Forward Declaration 之间的冲突