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

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

declare function FooTest(selector: string): any;

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

×
ReferenceError: FooTest is not defined

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

阅读 3.6k
3 个回答

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

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

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题