Typescript 参数隐式具有一个';任何';类型

Typescript 参数隐式具有一个';任何';类型,typescript,visual-studio-code,typescript-typings,Typescript,Visual Studio Code,Typescript Typings,我正在为一个typescript项目使用VisualStudio代码,其中我使用了一些第三方npm js库。其中一些不提供任何ts类型(types.d.ts文件),因此每当我使用参数或变量而不指定其类型时,vs代码的linting显示此错误:参数隐式地具有“any”类型。 而且,ts不会编译 如何防止这种情况发生?首先,要使typescript容忍参数而不声明其类型,请编辑tsconfig.json // disable this rule: // "strict": true, // ena

我正在为一个typescript项目使用VisualStudio代码,其中我使用了一些第三方npm js库。其中一些不提供任何ts类型(types.d.ts文件),因此每当我使用参数或变量而不指定其类型时,vs代码的linting显示此错误:参数隐式地具有“any”类型。 而且,ts不会编译


如何防止这种情况发生?

首先,要使typescript容忍参数而不声明其类型,请编辑
tsconfig.json

// disable this rule:
// "strict": true,

// enable this rule:
"noImplicitAny": false
其次,安装tslint npm包作为tslintvs代码扩展的先决条件

npm install -g tslint

第三,安装

指定类型:
(callback:any)=>{}
例如。

**我不想修改配置文件和哑写类型脚本

此代码向我抛出错误:

  onDelete(todo) {
    console.log('delete')
    this.deleteTodo.emit(todo)   
  }
我通过添加“any”类型修复了我的问题:

对于那些:

  • 当导入js文件时,例如从“@/path/to/mymodule.js”导入mymodule时,会出现此问题。
  • 我不想变得非常虚伪
你可以:

  • 创建名为
    index.d.ts的文件
  • 放在那里

我在这里结束了以下错误。这是Bing上的第一个搜索结果,因此,如果我的解决方案对某人有帮助,请将其放入

参数“onPerfEntry”隐式具有“any”类型。TS7006

我是这样解决的

以前

const reportWebVitals = onPerfEntry  => {
之后


我知道这很简单,但对于像我这样的初学者来说,我花了一段时间才弄明白。

这是一个更好的答案。另一种方法只是隐藏消息,而不是修复它所抱怨的内容。使用
any
类型仅仅修复编译时错误是一种不好的做法。@SerhiiPolishchuk这不是一种不好的做法。你的反应是任何对动态类型语言感到不舒服的人的反应,这没关系。这是您在任何具有Duck类型的语言中都会发现的熟悉语法。“any”是可以接受的,因为预期对象没有实际结构。看,我对严格的类型暗示和动态也很满意,因为我使用的是5.2版的php。我认为值得一提的是,对于那些还不知道为什么要指定类型的人来说。请把它加到你的答案里,让这个世界更安全一点。人们应该知道真相——指定论点的类型可以保证时间和金钱的安全——如果你知道确切的类型,就使用它。非常有限的情况需要类型。当您想要指定类型时,请不要忘记()大括号。如果你没有
tsconfig.js
文件,在你的
tsconfig.json
文件中做同样的更改。@SrijanChaudhary感谢你指出,这实际上是一个打字错误,现在已经修复了。编辑只是隐藏了消息而没有修复问题!虽然我们感谢您的回答,但如果它能在其他答案的基础上提供额外的价值,那就更好了。在这种情况下,您的答案不会提供额外的价值,因为LLL已经发布了该解决方案。如果之前的答案对你有帮助,你应该在你有足够的声誉后投票。谢谢,这非常有用
declare module '@/path/to/mymodule.js'
// or using wild card *, like `declare module '@/store/*.js'`
const reportWebVitals = onPerfEntry  => {
const reportWebVitals = (onPerfEntry : any) => {