未分類 23 7 月 2019 ts 限制属性仅能在类和子类内部访问,实例不能访问,应该怎么做? ts 限制属性仅能在类和子类内部访问,实例不能访问,应该怎么做? 資深大佬 : xiaoming1992 66 private? 大佬有話說 (15) 資深大佬 : binux protected? 資深大佬 : binux 做不到 資深大佬 : Justin13 感觉你说的有点像 static 呢? 資深大佬 : creanme 感谢大家,是 protected 主 資深大佬 : xiaoming1992 云了一下感觉可以在 constructor 里用访问器 資深大佬 : KuroNekoFan protected 权限的属性实例也能访问吧 資深大佬 : H15018327040 @H15018327040 #7 可以吗?我看文档不能访问的啊(好像只是在 ts 的语法里限制访问,从 js 引用过来之后强行访问还是可以访问的,好像?我没看过转换后的源码,不过这就够了) 主 資深大佬 : xiaoming1992 用 Symbol 資深大佬 : giuem @giuem 不太懂,用 Symbol 的话,难道是“`javascriptconst SymbolProp = Symbol(“some prop”) class A { [SymbolProp]: “some val”;}“`如果是这样的话,我得把 SymbolProp 导出去,子类要用这个属性,还得从这儿导入才能用吗?那这样就有些麻烦了哦 主 資深大佬 : xiaoming1992 @creanme +1 資深大佬 : blindie @xiaoming1992 protected 是父类子类都能访问,静态属性也能通过实例访问,暂时没有想到满足你需求的解决方案,或者说这个需求有问题。 資深大佬 : H15018327040 @xiaoming1992 已找到方法,protected static _name 定义一个只在类和子类中不通过实例可以访问的属性,然后在类的构造函数中删除这个属性,那通过 new 产生的实例都没有这个属性,但是可以通过类访问。 資深大佬 : H15018327040 @H15018327040 谢谢,protected 就可以啊 主 資深大佬 : xiaoming1992 @xiaoming1992 protected 在实例中可以访问 資深大佬 : H15018327040 @H15018327040 看文档说不可以,自己试了试,也确实不可以啊?