ts 声明的全局函数,变量不可用?

在项目中src下global.d.ts中声明全局函数,

declare function FooTest(selector: string): any;

然后任意某块下使用时报错:

×
ReferenceError: FooTest is not defined

请问大佬们ts 如何声明全局函数,变量并使用呢?

阅读 3.7k
3 个回答

ts声明的外部类型只能是类型,不是具体实现。所以你只能将它作为注解来使用(或者用于ts自动推断),不能当做一个js变量来开始用。

global.d.ts 只是声明文件,用来告诉 ts 全局范围内存在一个函数,但是实际运行的时候有没有那就不关 ts 的事了。

你必需实现这个全局函数:

function FooTest(selector: string): any {
  throw "Unimplemented";
}

if (window.FooTest === undefined) window.FooTest = FooTest;

确保在使用 FooTest 之前运行这段代码,最好放在项目入口。

推荐问题