【问题标题】:Overwriting a Javascript function in Typescript在 Typescript 中覆盖 Javascript 函数
【发布时间】:2018-03-16 13:35:29
【问题描述】:

我正在使用 Angular 5 和 typescript,并将代码编辑器 codemirror 包含在我的页面中。

我想覆盖一个嵌套的功能:Codemirror.hint.function

在javascript中它看起来像:

Codemirror.hint.function = function(param) = {
...
}

我怎样才能在打字稿中做到这一点?因为是嵌套的,所以无法定义简单的接口。

我想为此编辑器定义一个自己的自动完成功能。

已解决:Codemirror 特定解决方案:代码:stackblitz

【问题讨论】:

    标签: angular typescript codemirror


    【解决方案1】:

    你可以用这个

    Object.defineProperty(Codemirror.hint, 'function', {value: () => {/* your override */}});
    

    虽然我非常怀疑一个对象可以有一个function 函数,因为它是一个javascript 关键字。

    编辑我不知道为什么或如何,但是您的闪电战中的打字稿定义没有将 CodeMirror 声明为全局变量。可能会缩小,但我不会进一步搜索。

    所以我在index.html 中添加了带有CDN 的脚本,现在它可以工作了。

    Here is the stackblitz.

    【讨论】:

    • 找不到 Codemirror。我应该定义一个接口吗?
    • 如何在 Typescript 组件中访问它?
    • 目前我无法访问它。这就是我被卡住的原因。
    • declare var Codemirror: any; ?
    • 请发布您的代码,我真的厌倦了人们说他们做了某事,而他们没有,然后抱怨解决方案不起作用,因为他们没有这样做只是因为他们不喜欢这个答案。或者更好的是,针对您的问题创建一个堆栈闪电战。
    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多