我的代码如下:
$(function() {
$("table").on("click", function() {
const button = $(this);
});
});
我的错误是:
此类型隐式地具有“ any”类型,因为它没有类型注释。
如何解决此错误?
编辑:
我的tsconfig.json如下:
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"strict": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/*",
"src/types/*"
]
}
},
"include": [
"src/**/*"
]
}
编辑2:
我的package.json中有以下内容
"@types/jquery": "^2.0.41",
答案 0 :(得分:1)
问题几乎完全是编译器所说的:
//*[contains(text(), ':TEST') and contains(text(), 'SELENIUM') and contains(text(), '1234')]
那是因为您在error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
4 const button = $(this);
~~~~
中设置了strict: true
,同时也打开了tsconfig.json
。 TypeScript的docs状态表明noImplicitThis
的意思是:
使用隐式
noImplicitThis
类型对此表达式引发错误。
由于在事件处理程序中使用any
之前没有指定其类型,因此会出现错误。
解决方法是指定this
的类型:
this
这将告诉TypeScript事件处理程序中$(function() {
$("table").on("click", function(this: HTMLButtonElement) {
const button = $(this);
});
});
的预期类型是什么。
或者,您可以在this
中将strict
更改为false
,但这可能不是一个可行的选择。