Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一次性使用变量:能否确保每个枚举成员只引用一次?_Javascript_Reactjs_Typescript_Eslint - Fatal编程技术网

Javascript 一次性使用变量:能否确保每个枚举成员只引用一次?

Javascript 一次性使用变量:能否确保每个枚举成员只引用一次?,javascript,reactjs,typescript,eslint,Javascript,Reactjs,Typescript,Eslint,我正在开发一个用Typescript编写的React应用程序 我想为100多个组件中的每个组件提供一个唯一的ID,该ID在用户会话期间保持不变: 任何两个组件都不应分配相同的ID 目前,我正在使用TypeScript枚举来跟踪,但没有什么能阻止我或同事意外地将同一个枚举成员分配给两个组件: enum id={ Id1, Id2, } //哎呀 有人知道一种方法来确保枚举成员(或其他变量)在编译时只在整个代码库中引用一次吗 我想知道是否可以使用ESLint规则实现这一点,但找不到任何跨整个代

我正在开发一个用Typescript编写的React应用程序

我想为100多个组件中的每个组件提供一个唯一的ID,该ID在用户会话期间保持不变:


任何两个组件都不应分配相同的ID

目前,我正在使用TypeScript枚举来跟踪,但没有什么能阻止我或同事意外地将同一个枚举成员分配给两个组件:

enum id={
Id1,
Id2,
}
//哎呀
有人知道一种方法来确保枚举成员(或其他变量)在编译时只在整个代码库中引用一次吗


我想知道是否可以使用ESLint规则实现这一点,但找不到任何跨整个代码库的ESLint计数引用的示例?另外,当linter在您键入时实时运行时,这可能会变得非常慢。

您可以创建自己的,但正如您所说,如果您不小心对其进行编码(缓存未触及文件的计数等),它可能会变得非常慢。您可以使用regex并编写自己的构建步骤工具。扫描所有源文件(限于特定扩展名)搜索
,将它们收集在一起,然后确保没有被复制。我是说,好吧,但为什么?UUID还不够吗?如果您不打算自动分配ID,为什么他们需要系统管理的ID?@DavidCulbreth ID必须在会话中保持不变(用于保存与每个组件相关的设置),因此在运行时调用UUID生成器将不起作用