我正在努力了解在多个文件中公开Typescript中的变量的正确方法。我已经阅读了关于StackOverflow的一些现有问题,但是许多问题似乎都是针对Typescript的较早版本(1.0)。
鉴于我有一个项目,其中包含使用lerna编译的多个软件包,并且在软件包common
中,我想声明一个变量token
,该变量可由其他软件包中的文件读取/写入,我该怎么办这个吗?
答案 0 :(得分:2)
鉴于您仍在使用模块,因此与真正的全局变量相比,使用从模块导出的变量可能要少得多。因为TypeScript将导入本身视为只读(与ECMAScript一致),所以您不能仅导出变量并使其他模块直接写入该变量。相反,您可以导出对象并使用该对象的(可写)属性来保存令牌。例如:
// common/index.ts
export const tokenHolder = {token: undefined};
// another file
import { tokenHolder } from "common";
tokenHolder.token = "foo";
console.log(tokenHolder.token);
如果这不是您想要的,请说明问题。