Summernote是一个jQuery插件,我不需要为它定义类型.我只想修改对象,但是TS一直抛出错误.下面这行仍然给我:"Property 'summernote' does not exist on type 'jQueryStatic'."错误.

(function ($) {

  /* tslint:disable */
  delete $.summernote.options.keyMap.pc.TAB;
  delete $.summernote.options.keyMap.mac.TAB;
  /* tslint:enable */

})(jQuery)

Edit:

这是我的tsconfig.json

{
  "compilerOptions": {
    "outDir": "./dist/",
    "sourceMap": true,
    "noImplicitAny": true,
    "module": "commonjs",
    "target": "es5",
    "allowJs": true,
    "noUnusedParameters": true
  },
  "include": [
      "js/**/*"
  ],
  "exclude": [
      "node_modules",
      "**/*.spec.ts"
  ]
}

推荐答案

As of Typescript 2.6, you can now bypass a compiler error/warning for a specific line:

if (false) {
    // @ts-ignore: Unreachable code error
    console.log("hello");
}

注意这个the official docs "recommend you use [this] very sparingly".这几乎是always更可取的,而不是施法到any,因为那样更好地表达了意图.


较旧的答案:

您可以使用/* tslint:disable-next-line */在本地禁用tslint.但是,由于这是一个编译器错误,禁用tslint可能无济于事.

You can always temporarily cast $ to any:

delete ($ as any).summernote.options.keyMap.pc.TAB

which will allow you to access whatever properties you want.

Jquery相关问答推荐

我需要在上一个表格单元格中显示计算结果

jQuery:如何动态检测窗口宽度?

JavaScript 或 jQuery 字符串以实用函数结尾

使用 jQuery,当用户仍在编辑该字段时,如何将文本字段的第一个字母大写?

在jQuery中获取所有选定复选框值的最佳方法

jQuery: Select 属性大于值的所有元素

SCRIPT7002:XMLHttpRequest:网络错误 0x2ef3,由于错误 00002ef3 无法完成操作

可以在不使用for=id的情况下将标签与复选框相关联吗?

如何正确卸载/销毁 VIDEO 元素

使用 JavaScript 和 jQuery,跨浏览器处理按键事件 (F1-F12)

如何在 Jquery 中将 delay() 与 show() 和 hide() 一起使用

$(document).on('click', '#id', function() {}) 与 $('#id').on('click', function(){})

删除索引后的所有项目

如何阻止 Chrome 进入调试模式?

如何将文本从 div 复制到剪贴板

jQuery从字符串中删除'-'字符

如何使锚链接不可点击或禁用?

Ajax 处理中的无效 JSON 原语

如何使用新的 JSON 数据手动更新数据表

jQuery:通过 .attr() 添加两个属性;方法