首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带导入的环境模块声明

带导入的环境模块声明
EN

Stack Overflow用户
提问于 2018-05-10 13:48:24
回答 2查看 812关注 0票数 2

我正在创建一个环境模块来补充缺失的类型。我可以创建一个typings.d.ts文件,当我在代码的其他位置导入它时,一切都很好,除了doSomething的返回类型是any。为了解决这个问题,我将正确的类型从一个已知的库导入到typings.d.ts中,这为环境模块提供了正确的类型。

由于某种原因,当我这样做时,环境模块的import语句会中断。

typings.d.ts

代码语言:javascript
复制
import { Tree } from '@otherLib/core' /// <=== Adding this breaks the ambient declaration below

declare module '@lib/missingTypings' {
    export function doSomething(message: string): Tree
}

在上面的示例中,我希望从另一个库中提供适当的Tree返回类型。

EN

回答 2

Stack Overflow用户

发布于 2019-04-30 07:44:02

在我的例子中,这个奇怪的bug会影响Visual类型记录语言服务(编辑器不识别模块),而Babel编译代码时没有问题。

This answer为我解决了这个问题,但我仍然不明白为什么带有静态导入的代码在动态导入语法工作时不能工作。

票数 1
EN

Stack Overflow用户

发布于 2021-03-23 18:14:12

如果添加顶级导入/导出,则声明不再处于环境状态。为了确保您仍然有环境声明,您需要在declare块中导入,但是类型记录目前不允许您在声明块内使用相对导入,因为与模块是否应该相对于使用类型定义的类型定义文件或相对于使用类型定义的使用者文件相混淆,因此实现所要做的正确方法是使用导入()语法https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-9.html#import-types

我在这里写了更多关于这个的文章:https://stackoverflow.com/a/66768386/2054671

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50274458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档