繁体   English   中英

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

[英]How to use import with “declare” keyword in TypeScript?

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

declare var $: () => SomeValue;

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

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

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

这个需要什么语法?

.d.ts文件使用exportimport时,它们被视为module而不是环境typings

但是,您仍然可以使用declare global添加到全局命名空间。 这允许您扩充全局类型,甚至添加新的全局类型:

.d.ts

import { SomeValue } from "./SomeModule";

declare global {
    interface Window {
        $: () => SomeValue;
    }
    interface SomeGlobalInterface {
        x: number;
    }
}

.ts

// () => SomeValue
window.$

let value!: SomeGlobalInterface;
value.x;

您需要将“export”关键字添加到变量中。

export declare var $: () => SomeValue;

如果您希望此变量仅在同一文件中可用,则无需添加“export”关键字。 但是,如果您希望它在其他文件中使用,则需要添加“export”关键字。

常量、函数和类也是如此。 向其中添加“导出”将使其可供其他文件导入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM