gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:00:11 25 4
gpt4 key购买 nike

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

A relative import is resolved relative to the importing file and cannot resolve to an ambient module declaration.

还有:

For example, an import statement like import { b } from "./moduleB" in /root/src/moduleA.ts would result in attempting the following locations for locating "./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” -> 正是文档否认它所做的.

我是不是遗漏了什么或者文档有误?

最佳答案

简答

The line /root/src/moduleB.d.ts seems to me as an ambient module declaration... Am I missing something here or the documentation is wrong?

你在这里遗漏了一些东西。 moduleB.d.ts 不是环境模块声明。下面是一个文件示例,其中包含 moduleB 的环境模块声明。

// someFile.d.ts 

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

declare 关键字指定环境声明。

一些细节

关于环境这个词,the documentation says :

We call declarations that don’t define an implementation “ambient”. Typically, these are defined in .d.ts files.

环境声明包括但不限于环境模块声明。包含环境声明的 .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

关于typescript - 相对导入无法解析为环境模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45785620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com