如何在 TypeScript 中使用带有“declare”关键字的导入?

我有一个带有变量声明的 d.ts 文件,如下所示:

declare var $: () => SomeValue;

而且效果很好,在其他地方我可以在不导入的情况下使用这个变量。

但是,当我从另一个模块添加一些导入时,这个变量在其他代码中是不可见的。

import { SomeValue } from "./SomeModule";
declare var $: () => SomeValue;

这个需要什么语法?


ibeautiful
浏览 184回答 2
2回答

噜噜哒

当.d.ts文件使用exportorimport时,它们被视为 amodule而不是ambient typings。但是,您仍然可以使用declare global. 这允许您扩充全局类型,甚至添加新的全局类型:.d.tsimport { SomeValue } from "./SomeModule";declare global {    interface Window {        $: () => SomeValue;    }    interface SomeGlobalInterface {        x: number;    }}.ts// () => SomeValuewindow.$let value!: SomeGlobalInterface;value.x;

呼唤远方

您需要将“export”关键字添加到变量中。export declare var $: () => SomeValue;如果您希望此变量仅在同一文件中可用,则无需添加“export”关键字。但是,如果您希望它在其他文件中使用,则需要添加“export”关键字。常量、函数和类也是如此。向其中添加“导出”将使其可供其他文件导入。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript