gpt4 book ai didi

javascript - 如何解决 "' this' implicitly has type 'any' "when Typescript checking classic JS class

转载 作者:搜寻专家 更新时间:2023-10-30 21:05:11 25 4
gpt4 key购买 nike

我有一些使用经典 JS 类的旧代码,我想对其进行类型检查。例如:

/**
* @constructor
*/
function Test() {
this.x = 1;
}

但是,当我运行 tsc --noImplicitThis --noEmit --allowJs --checkJs test.js 进行类型检查时,出现以下错误:

test.js:5:5 - error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.

5 this.x = 1;
~~~~

通过查看 https://github.com/Microsoft/TypeScript/wiki/JsDoc-support-in-JavaScript,我无法找到任何类型注释来修复此错误。或者只是猜测。有办法吗?

最佳答案

noImplicitThis 产生了那个错误。您需要使用 this parameter指定 this 的预期类型。

使用 JSDoc 时,您可以使用 @this annotation :

/**
* @constructor
* @this Test
*/
function Test() {
this.x = 1;
}

在 Typescript 中,它被写成 function Test(this: Point) { ... }

关于javascript - 如何解决 "' this' implicitly has type 'any' "when Typescript checking classic JS class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52431074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com