TS如何声明一个全局变量或者函数?

最近在学习TS,手上项目有几个频繁使用的函数,想声明成全局的,如果像js一样直接往windows下添加会报错,该怎么解决?

1赞

1、 使用interface Window {}

// 新建一个global.d.ts文件,建议不要放在assets目录下,因为它仅为TS提供代码提示
// 然后把你的函数或变量声明到Window下
declare interface Window {
    method1: Function;
    property1: string;
}

2、 直接

// 赋值
window["method1"] = ()=>{};
window["property1"] = "";
// 使用
window["method1"]();
var str = window["property1"];

不过这样没有代码提示。

6赞

我是这样写的,声明一个module,然后里面声明变量,就是全局变量了:

export module ThePublicModule {
    export let publicInfo: string;
}

用的时候只需要导入这个module,当然,你需要在某个入口里面初始化他们。

全局函数更好办,TS有static 方法,是类的方法,可以直接 TheClass.staticFunction() 来调用;

2赞

直接用 ts的 静态变量和方法就可以了

Mark

Mark~~

mark~

export class Global {
    public static readonly instance = new Global();

    public constructor() {}

    // 这里开始添加你的方法
}

我都是这么干的

1赞