因此,在C#中,当我创建模型类和延迟加载时,我会这样做:
public int? User_ID { get; set; }
public int? Dept_ID { get; set; }
然后在我的班级里,我像这样弹出我的虚拟机:
public virtual User User {get; set;}
public virtual Department Dept {get; set;}
在Typescript中我该怎么做呢?类似这样的东西?:
User_ID: number;
Dept_ID: number;
User: User;
Dept: Department;
我不认为接口是我想要的/需要的......但是保护似乎也不正确。有些东西告诉我,我在这里错过了一个明显的答案。
5条答案
按热度按时间lxkprmvk1#
以下内容同样适用于TypeScript和JavaScript:
没有对等的。
JavaScript中的每一个成员访问都是动态分派的,这是因为JavaScript中的成员访问本质上是在哈希表中查找键。
一个对象可以声明一个成员,它通过原型链继承了一个相同的键,从而 * 影子 * 继承的成员,但这与虚拟性不同,虚拟性是语言中不存在的概念。
ui7jx7zq2#
是的有。
ajsxfq5m3#
Javascript和Typescript中的所有方法在技术上都是虚拟的,因为没有什么可以阻止你重写任何方法。
olmpazwi4#
我使用箭头函数作为类的属性来实现这一点(注意这是在ts中,但如果你对现代js很熟悉,它应该可以工作):
kxe2p93d5#
如果你想定义一个函数而不给它赋值,你可以使用
?
字符。但是,当访问声明为
MyAbstract
的示例时,调用myMethod
将始终引发Cannot invoke an object which is possibly 'undefined'.ts(2722)
,因此您必须使用!
字符来指定您确定它已实现。