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)
编辑:
下面是我的tsconfig.json
{
"compilerOptions": {
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es5",
"allowJs": true,
"noUnusedParameters": true
},
"include": [
"js/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
6条答案
按热度按时间50pmv0ei1#
从Typescript 2.6开始,你现在可以绕过特定行的编译器错误/警告:
请注意,官方文档“建议您非常谨慎地使用[this]”。几乎 * 总是 * 最好转换为
any
,因为这更好地表达了意图。老答案:
您可以使用
/* tslint:disable-next-line */
在本地禁用tslint。但是,由于这是一个编译器错误,禁用tslint可能没有帮助。你可以将
$
临时转换为any
:这样你就可以访问任何你想要的房产
uqxowvwt2#
@ts-expect-error
TypeScript 3.9引入了一个新的魔法注解。
@ts-expect-error
将:@ts-ignore
相同Playground
TypeScript开发者推荐什么?
@ts-ignore
和@ts-expect-error
就像一把用来对付编译错误的大锤。TypeScript开发人员建议在大多数情况下使用更细粒度、范围更窄的类型系统解决方案:我们添加了ts-ignore,目的是将其用于剩余的5%,这些5%不能被任何现有的类型系统机制抑制[...]在您的代码库中应该有非常非常少的
ts-ignore
[.] - microsoft/TypeScript#19139[...]从根本上说,我们认为你根本不应该在TypeScript中使用抑制。如果是类型问题,可以强制转换(这就是为什么存在
any
、强制转换和速记模块声明)。如果这是一个语法问题,一切都很糟糕,我们无论如何都会被破坏,所以抑制不会做任何事情(抑制不会影响解析错误)。- microsoft/TypeScript#19573question-case的替代
▶使用
any
型▶ Augment
JQueryStatic
接口在其他情况下,速记声明/扩充是编译没有/可扩展类型的模块的方便实用程序。一个可行的策略也是incrementally migrate到TypeScript,keeping not yet migrated code in
.js
通过allowJs
和checkJs: false
编译器标志。ndasle7k3#
您可以在该行之前简单地使用以下内容:
// @ts-ignore
1bqhqjot4#
我在出现错误之前使用了
// @ts-ignore:next-line
。vcudknz35#
如果您使用
eslint
来执行检查或修复,则可以通过在行顶部添加以下命令来禁用行pod7payv6#
在您的
tsconfig.json
中添加:你会没事的