假设我在TypeScript中有这个函数,它使用闭包来管理状态:
函数返回另一个函数,该函数接受Firebase的logEvent方法的参数。我只想在firebase上设置一次用户ID,所以我使用一个布尔标志来检查它是否已经完成。
有办法做到这一点而不变异guidSet变量吗?或者,在不需要突变的布尔标志的情况下,是否有一种方法可以完成这一任务?
我知道,在类似这样的小事情中,可读性也许超过了不变异变量的“教条”。此外,guidSet无法观察到Logger函数之外的任何内容,这使得这种突变不那么“危险”,但无论如何,我感兴趣的是如何在不对函数中的任何内容进行技术变异的情况下完成这一任务:
import analytics from "@react-native-firebase/analytics";
function Logger(): Function {
const analyticsInst = analytics();
let guidSet: boolean;
return (key: string, data?: any, guid?: string | null) => {
if (!guidSet && guid) {
guidSet = true;
analyticsInst.setUserId(guid);
}
analyticsInst.logEvent(key, data);
};
}发布于 2022-01-28 11:17:31
这行得通吗?
import analytics from "@react-native-firebase/analytics";
function Logger(guid: string): Function {
const analyticsInst = analytics();
analyticsInst.setUserId(guid);
return (key: string, data?: any) => {
analyticsInst.logEvent(key, data);
};
}https://stackoverflow.com/questions/70892551
复制相似问题