找不到声明文件时如何使用模块

时间:2019-06-20 15:05:57

标签: node.js reactjs typescript

我有一个使用node.js的打字稿项目。有一个模块,我想使用npm包country-code-lookup。

问题在于它没有支持的类型声明。但是,我仍然想使用它。

是否有可能不用输入就可以使用此软件包。

vault_postgres_password: "theReal-postgres-password-is-protected" 

当打字稿尝试编译时,出现以下错误。

  

TS7016:找不到模块的声明文件   “国家代码查询”。   '/Users/kay/portal/node_modules/country-code-lookup/index.js'   隐式地具有“ any”类型。         如果存在,请尝试import * as CountryCodeLookup from "country-code-lookup"; const countryCodes = CountryCodeLookup.countries; console.log(countryCodes); 或添加一个包含npm install @types/country-code-lookup

的新声明(.d.ts)文件。

1 个答案:

答案 0 :(得分:1)

如果仅忽略该库的所有类型检查功能就没有问题,则有两种选择:

  1. 在所有导入内容的前面加上// @ts-ignore,如下所示:
// @ts-ignore
import * as CountryCodeLookup from "country-code-lookup";
  1. 创建一个any类型的声明文件,因此所有导入都被自动认为是any类型。

为此,请创建一个文件src/types/country-code-lookup/index.d.ts 添加以下声明:

// country-code-lookup/index.d.ts
declare module 'country-code-lookup';

稍后,在此文件中,您可以添加自己的类型定义。如果它们足够好,请推动他们去做DefinitelyTyped,以便所有社区都可以使用和改进它!