簡體   English   中英

繼承類型成員實體類型腳本

[英]Inherit Type Member Entity Typescript

我有以下數據結構:

export abstract class Person {
    ...
}

export class FPerson extends Person {
    a: A;
    b: B;
}

export class JPerson extends Person {
    c: C;
}

export class User {
    person: Person;
}

在服務器端,我具有用Java編寫的相同結構,User person成員可以是FPersonJPerson 我希望能夠根據人員類型進行轉換。如何在Typescript中進行轉換?

像這樣:

doSomething(u: User) {
    let fp: FPerson;
    let jp: JPerson;

    if (u.person.isFPerson()) {
       fp = <FPerson> u.person;
    } else {
       jp =  <FPerson> u.person;
    }
  ...
}

如何實現isFPerson()方法? 以及如何強制打字稿將FPersonJPerson存在的額外字段存儲到Person變量中?

有點像java:

doSomething(u: User) {
    let fp: FPerson;
    let jp: JPerson;

    if (u.person instanceof FPerson) {
       fp = <FPerson> u.person;
    } else {
       jp = <JPerson> u.person;
    }
  ...
}

盡管FPersonJPerson需要擴展Person ,但問題代碼中並非如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM