找回密码
 立即注册

QQ登录

只需一步,快速开始

Mr.Hu

金牌服务用户

33

主题

148

帖子

435

积分

金牌服务用户

积分
435
Mr.Hu
金牌服务用户   /  发表于:2024-9-23 09:34  /   查看:473  /  回复:6
1金币
   这几天抽空学习了下活字格插件开发,按照教程做,依样画葫芦,这个没问题,效果都符合预期的。就是里面的代码逻辑有些地方不理解。比如在“一个简单单元格插件”的示例JS代码中,有这样一行代码:const propValue = this.CellElement.CellType.MyProperty,代码看似很简单,也容易理解,就是定义一个propValue的变量,并赋值给它,赋值的逻辑是利用继承自 Forguncy.Plugin.CellTypeBase基类的当前实例 this的CellElement属性(该属性看文档应该是一个CellContentElement接口类型),再通过接口关联到该属性的CellType属性,CellType属性又跟C#定义的插件类型对应,最后获取到属性MyProperty,最后打通了前后端互相通讯的目的。这里有个疑问,就是CellElement是个接口类型,它是继承自CellTypeBase基类的当前类的一个属性,按我的理解,一般接口只能用来继承,并在子类中实现接口中定义的成员,貌似不能作为一个属性来设置的。其他还有不少地方有这种语法,不理解具体的逻辑是如何的。烦请大神们给解惑下。

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

6 个回复

倒序浏览
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2024-9-23 11:25:42
沙发
大佬,关于typescript中的interface,大佬可以参考typescript的官方文档
https://typescript.bootcss.com/interfaces.html
相信对大佬会有帮助,这边对代码方面也不是很懂,猜测原理大概就是接口只要实例化了,不需要继承也能使用属性;
回复 使用道具 举报
Mr.Hu
金牌服务用户   /  发表于:2024-9-23 11:28:48
板凳
好的,谢谢大佬,我下午看下,再等等其他大佬,看看还有无其他解释。说句实话,js内置功能我记得没有接口这个说法的,不知道活字格的逻辑是如何的,不整明白总感觉心里有点怪怪的,哈哈。
回复 使用道具 举报
Mr.Hu
金牌服务用户   /  发表于:2024-9-23 12:20:49
地板
Nathan.guo大佬,刚才我浏览了下您发的链接,貌似typescript里,也没有找到在class类里可以直接把interface接口定义为类的属性成员的示例,我只看到类实现接口和继承接口的情形,还有就是把接口作为参数进行传递的情形。大佬能否把接口作为类的属性这种情形发个截图给我。
回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2024-9-23 15:28:57
5#
大佬您好,在文档中存在使用接口定义的变量,定义变量和Class定义属性是一样的,不过确实没有找到在Class中定义属性类型为接口的示例文档。


其他大佬若是有找到相关的文档可以发一下,必有金币相赠

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Mr.Hu
金牌服务用户   /  发表于:2024-9-23 15:31:26
6#
好的,尚工,收到,我再咨询咨询。
回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2024-9-23 16:08:58
7#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部