javascript - TypeScript 中 c# 类虚拟成员的等价物

标签 javascript c# typescript oop overriding

所以在 C# 中,当我一直在创建模型类和延迟加载东西时,我会做这样的事情:

public int? User_ID { get; set; }
public int? Dept_ID { get; set; }

然后在我的类(class)稍远一点的地方,我像这样进入我的虚拟世界:

public virtual User User {get; set;}
public virtual Department Dept {get; set;}

我如何在 Typescript 中执行此操作?是这样的吗?:

User_ID: number;
Dept_ID: number;
User: User;
Dept: Department;

我不认为接口(interface)是我想要/需要的...但是再次保护似乎也不正确。有些东西告诉我,我在这里缺少一个明显的答案。

最佳答案

以下同样适用于 TypeScript 和 JavaScript:

没有等价物。

根据定义,JavaScript 中的每个成员访问都受制于动态调度。这是因为从道德上讲,JavaScript 中的成员访问是哈希表中的键查找。

一个对象可以使用与它通过原型(prototype)链继承的成员相同的键来声明一个成员,从而隐藏继承的成员,但这与虚拟性不同,虚拟性是语言中不存在的概念.

关于javascript - TypeScript 中 c# 类虚拟成员的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50067465/

相关文章:

c# - 如何为各种构造函数做Activator.CreateInstance?

c# - win32 输出字节作为声音输入

javascript - 打开一个窗口并向该窗口写入内容

javascript - 在 Wordpress 网站上执行自定义 css 后 JS 无法正常工作

c# - 为什么 XmlDocument.Load(String) 似乎需要读写访问权限?

typescript - 禁止与任何人通话

angular - 从服务访问组件数据

node.js - 你如何使用 testdouble 模拟 typeorm 的 getManager?

javascript - 隐藏元素并根据下拉选择不需要它们

javascript - 为什么我不能在 JS 和 jQuery 中使用同一个变量?