参数隐式具有“任何”类型

时间:2017-12-16 18:29:46

标签: typescript visual-studio-code typescript-typings

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

如何防止这种情况发生?

6 个答案:

答案 0 :(得分:22)

首先,要使打字稿容忍参数而不声明其类型,请编辑tsconfig.js

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

// enable this rule:
"noImplicitAny": false

其次,安装tslint npm包作为 tslint vs代码扩展

的先决条件
npm install -g tslint

第三,安装tslint vs code extension

答案 1 :(得分:4)

指定类型:例如(callback:any) => { }。我意识到该线程很旧,但我希望它仍可以为其他人保存谷歌搜索。

答案 2 :(得分:1)

对于那些:

  • 导入 import mymodule from '@/path/to/mymodule.js' 等 js 文件时出现此问题
  • 并且不想将 noImplicitAny 设为 false

你可以:

  • 创建一个名为 index.d.ts 的文件
  • 把类似的东西放在那里
declare module '@/path/to/mymodule.js'
// or using wild card *, like `declare module '@/store/*.js'`

答案 3 :(得分:0)

**我不想修改配置文件并简化打字稿!

此代码使我出错:

  onDelete(todo) {
    console.log('delete')
    this.deleteTodo.emit(todo)   
  }

我通过添加“ any”类型修复了我的问题:

  onDelete(todo: any) {
    console.log('delete')
  this.deleteTodo.emit(todo)   
  }

答案 4 :(得分:0)

我最终出现了以下错误。这是 Bing 上的第一个搜索结果,所以,如果对某人有帮助,请把我的解决方案放上来。

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

我是这样解决的。

之前


var = "APPLE"
lower_var = var.lower()

之后

const reportWebVitals = onPerfEntry  => {

我明白这是一件简单的事情,但对于像我这样的初学者来说,我花了一段时间才弄明白。

答案 5 :(得分:0)

这对我有用。 检查我如何使用 x 变量

   From

     const user = users.find(x => x.username === username && x.password === password);

   To
const user = users.find((x:any) => x.username === username && x.password === password);