如何声明Typescript模块以防止“隐式具有'any'类型”错误?

时间:2019-04-18 13:59:40

标签: typescript

我正在用打字稿代码导入相对模块:

import * as NGLViewer from '../../ngl/build/js/ngl.esm'

(位于https://github.com/arose/ngl) 该模块是使用typescript构建的,并且内部具有很多类型,但是无论出于何种原因,它都没有模块声明文件。因此,当我导入它时,会出现此错误:

52:28 Could not find a declaration file for module '../../ngl/build/js/ngl.esm'.
'/myproject/ngl/build/js/ngl.esm.js' implicitly has an 'any' type.

所以我想我可以在modules.d.ts文件中添加环境模块decl:

declare module '../../ngl/build/js/ngl.esm'

但是会出现此错误:

12:16 Ambient module declaration cannot specify relative module name.

我不想修改“ ngl”模块,除此之外,一切正常,所以我只想关闭错误。我的modules.d.ts中正确的咒语是什么?还是我输入的是错误的东西?

1 个答案:

答案 0 :(得分:0)

该错误表明模块声明不能具有相对的模块名称,例如“ ../../module_name”。您是否尝试过使用软件包管理器(例如npm或yarn)将此模块添加到您的代码库中?

如果您使用的是包管理器,则在.d.ts文件中声明模块的正确方法如下:

declare module "ngl"{
    // properties and their types
}