首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从TypeScripd声明文件中导入只有“声明模块”顶级声明的内容

从TypeScripd声明文件中导入只有“声明模块”顶级声明的内容
EN

Stack Overflow用户
提问于 2017-04-27 09:55:27
回答 1查看 729关注 0票数 1

我有一个TypeScript文件foo.d.ts。它包含了许多“声明模块”结构,仅此而已:

代码语言:javascript
复制
declare module Foo {
}

declare module Fun {
}

代码是由Bridge.NET自动生成的,所以我无法修改它(实际上我可以修改它)。但这不是一个好看的解决方案)。

如果在另一个带有import * as bridge from "./foo";的文件中引用该文件,则tsc表示“Filefoo.d.ts不是一个模块”。我做错什么了?

如果我编辑生成的文件(foo.d.ts)并在其末尾添加虚拟顶级导出(export interface Fix {}),问题就会消失。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-27 10:59:08

出现错误的原因是您的foo.d.ts实际上不是一个模块,而是一个脚本。但是import语句应该仅与模块一起使用。当您添加export interface Fix {}时,这会将文件转换为一个模块,这就是错误消失的原因。

通用规则非常简单,如果至少有一个顶级实体(class/接口/变量.),则TypeScript编译器将文件视为一个模块。包含导出修饰符。否则,文件将像脚本一样被处理。

如果您真的不需要foo.d.ts作为一个模块,您可以使用下面的指令引用它。在这种情况下,文件中声明的所有实体都是全局可用的。

代码语言:javascript
复制
/// <reference path="foo.d.ts" />
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43654444

复制
相关文章

相似问题

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