1. ホーム
  2. javascript

[解決済み] 特定の行のtsルールを無効にする方法は?

2022-03-06 17:34:20

質問

SummernoteはjQueryのプラグインで、型定義は必要ない。オブジェクトを変更したいだけなのですが、TSはエラーを出し続けています。以下の行はまだ私を与えます。 "プロパティ 'summernote' はタイプ 'jQueryStatic' に存在しません。 というエラーが発生します。

(function ($) {

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

})(jQuery)

編集する

以下は私のtsconfig.jsonです。

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

解決方法は?

Typescript 2.6 では、特定の行に対するコンパイラのエラー/警告を回避できるようになりました。

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

なお 公式ドキュメントでは、[this]の使用は控えめにすることを推奨しています。 . それはほとんど 常に にキャストすることが望ましい。 any の代わりに、その方が意図をよりよく表現できるからです。


古い回答です。

を使用することができます。 /* tslint:disable-next-line */ でローカルにtslintを無効にしています。しかし、これはコンパイラのエラーであるため、tslintを無効にしても解決しないかもしれません。

を一時的にキャストすることができます。 $any :

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

で、好きなプロパティにアクセスできるようになります。