我有一个带有变量声明的 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;
呼唤远方
TA贡献1856条经验 获得超11个赞
您需要将“export”关键字添加到变量中。
export declare var $: () => SomeValue;
如果您希望此变量仅在同一文件中可用,则无需添加“export”关键字。但是,如果您希望它在其他文件中使用,则需要添加“export”关键字。
常量、函数和类也是如此。向其中添加“导出”将使其可供其他文件导入。
添加回答
举报
0/150
提交
取消