simpul

Results 6 comments of simpul

> 可以贴一下示例代码。 @fengmk2 感谢大佬回复,下面是我的一个现状还原和实现的过程: -------------------------------------------------------------------------------------------------------------------------------------------- 在项目配置文件中添加一个symbol指向的自定义配置(SYMBOL_PERMISSION): ``` typescript // config/config.local.ts import { EggAppConfig, PowerPartial } from 'egg'; import { SYMBOL_PERMISSION } from '../utils/constants'; // export const SYMBOL_PERMISSION = Symbol('Middleware#permission'); export...

> 真 Symbol 没法被 copy 的,除非你拿到了 Symbol 的引用才能获取属性值。 @fengmk2 可能我表述有问题,就是期望拿引用去获取属性值,现状是不支持的。

> @simpul 你这些配置值给谁来消费的,只是你自己么?谁可能会覆盖掉你的? @atian25 这些配置值是给我自己消费的。实际场景是我写业务用的是公司框架(框架是在继承egg的基础上,里面集成了一些公司业务相关的插件,这些插件里面也有对应的配置项),然后在我在写自己业务的配置的时候,考虑到可能会覆盖掉内置插件的同名配置,所以才会想到用symbol

我这边是不是框架的维护者,只是用框架来写业务。从业务开发者角度来说,我可能不会过多地去关心这个框架集成了哪些插件以及对应的配置内容,所以会有担心配置key冲突的思考。 “ctx.app上挂载的属性是可以用symbol做属性key做合并的”——当时我也考虑既然app上的属性可以以symbol作为key,那么配置应该也可以支持一下。当然具体还是看大佬们的建议(抱拳

了解,我还是采用长key的方法吧,第二种方式看起来不太优雅。 感谢天🐷大大的解答

emm,还是有点区别的。如果是字符串的话还是会有因重名而被误覆盖的可能性,只是加特定前缀会大大降低这个可能性。而用symbol的话除非拿到引用才能访问到配置里面的内容。我是这样理解的。