为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ibeautiful 2022-10-13 17:07:48
我有一个带有变量声明的 d.ts 文件,如下所示:declare var $: () => SomeValue;而且效果很好,在其他地方我可以在不导入的情况下使用这个变量。但是,当我从另一个模块添加一些导入时,这个变量在其他代码中是不可见的。import { SomeValue } from "./SomeModule"; declare var $: () => SomeValue;这个需要什么语法?
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

当.d.ts文件使用exportorimport时,它们被视为 amodule而不是ambient 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;


查看完整回答
反对 回复 2022-10-13
?
呼唤远方

TA贡献1856条经验 获得超11个赞

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

export declare var $: () => SomeValue;

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

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


查看完整回答
反对 回复 2022-10-13
  • 2 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信