相对导入无法解析为环境模块

肾上腺皮质激素

根据打字稿文档(https://www.typescriptlang.org/docs/handbook/module-resolution.html):

相对导入相对于导入文件已解析,并且无法解析为环境模块声明。

但是也:

例如,从/root/src/moduleA.ts中的“ ./moduleB”导入类似import {b}的导入语句将导致尝试以下位置来查找“ ./moduleB”:

/root/src/moduleB.ts
/root/src/moduleB.tsx
/root/src/moduleB.d.ts
/root/src/moduleB/package.json (if it specifies a "typings" property)
/root/src/moduleB/index.ts
/root/src/moduleB/index.tsx
/root/src/moduleB/index.d.ts"

我看来,/ root / src / moduleB.d.ts是一个环境模块声明,用于解析相对导入的“ ./moduleB”->文档完全否认了它的所作所为。

我在这里遗漏了什么东西还是文档错误?

肖恩·卢汀(Shaun Luttin)

简短答案

在我看来,/root/src/moduleB.d.ts行是环境模块声明...我在这里遗漏了一些东西吗,或者文档是错误的?

您在这里缺少什么。moduleB.d.ts不是环境模块声明。这是一个包含环境模块声明为的文件示例moduleB

// someFile.d.ts 

declare module "moduleB" {
    export class b { }
}

所述declare关键字指定的环境声明。

一些细节

关于环境一词,文档说

我们将没有定义实现的声明称为“环境”。通常,这些文件在.d.ts文件中定义。

环境声明包括但不限于环境模块声明。包含环境声明的.d.ts文件不是环境模块声明,并且不一定包含环境模块声明。

例如,以下greeter.d.ts文件包含一个环境类声明,但不是环境模块声明。

// greeter.d.ts

declare class Greeter {
    constructor(greeting: string);
    greeting: string;
}

以下foobar.d.ts文件包含两个环境模块声明“ foo”和“ bar”,但是该文件本身不是环境模块声明。

// foobar.d.ts

declare module "foo" {       
    export function doFoo(foo: string): string;
}

declare module "bar" {
    export function doBar(bar: string): string;
}

您最初引用的文档指出,相对导入"./foo"无法解决该模块的上述环境声明。

更多细节

请参阅:https//www.typescriptlang.org/docs/handbook/modules.html

另请参阅:https : //github.com/Microsoft/TypeScript-Handbook/issues/180

另请参阅:https : //www.typescriptlang.org/docs/handbook/declaration-files/by-example.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

混乱的pip环境,无法python导入模块

模块“ ...”解析为非模块实体,无法使用此构造导入

模块之间的相对导入

Typescript的导入无法解析外部模块

VS/Pylance 警告:无法解析导入“模块”

eslint导入webpack:无法解析模块路径

导入模块时无法解析React

“ ...解析为非模块实体并且无法使用此构造导入”是什么意思?

项目内的相对导入导致“ SystemError:父模块”未加载,无法执行相对导入”

无法使用相对导入来访问模块

无法解析模块“”相对于“” Angular 7

无法在Snakemake规则中使用conda环境导入python模块

导入的方法无法解析为方法

导入后Eclipse无法解析为类型

Java 9-无法解析为模块

org.json无法解析为模块?

导入 ..<module> 时“未加载父模块,无法执行相对导入”

无法为调试节点模块设置环境变量

React-native 无法在导入 js 文件时解析模块

反应导入导致无法解析模块说明符“反应”

Android Studio无法解析导入的AAR模块中的符号

VS 2015 Angular 2导入模块无法解析

无法为twisted.web导入python http模块

Python:未加载SystemError父模块,无法执行相对导入

开玩笑-无法从共享(Angular)中找到具有相对导入的模块

如何解决“无法为环境生产解析”错误?

无法从模块导入子模块

获取系统错误:父模块“未加载”,尝试在 Cython 扩展中导入 numpy 时无法执行相对导入

解决自己模块中的相对导入