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

新手上路,请多包涵

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

我怎样才能防止这种情况发生?

原文由 Ronin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 865
2 个回答

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

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

// enable this rule:
"noImplicitAny": false

二、安装 tslint npm 包作为 tslint vs code 扩展的先决条件

npm install -g tslint

三、安装 tslint vs code扩展

原文由 Ronin 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果第三方库不提供类型,请先在 npm 中搜索 @types/SOMELIBRARY (将 SOMELIBRARY 替换为模块的 npm 名称):

npm search @types/SOMELIBRARY

如果存在,请 npm 安装它:

npm install @types/SOMELIBRARY

这是为不自己做的项目定义的类型存储库。如果那里不存在类型定义,您可以自己定义类型:

 // yourmodule.d.ts
declare module "yourmodule" {
  export default function somefunction(...): T
}

Typescript 应该找到并使用它来声明 yourmodule 中的类型。

在这里查看更多信息: https ://www.typescriptlang.org/docs/handbook/declaration-files/library-structures.html

您可以在此处简单地将 yourmodule 的所有部分定义为 any 作为临时解决方案,并且可以随时轻松添加更多细节。如果你最终得到了一个非常漂亮且可用的 yourmodule.d.ts ,请考虑将其添加到definitelyTyped: https ://github.com/DefinitelyTyped/DefinitelyTyped 这就是上面的 @types/LIBRARY 类型定义的来源从。

原文由 Vectorjohn 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进