Javascript 返回或接受两种不同的值类型

Javascript 返回或接受两种不同的值类型,javascript,oop,typescript,Javascript,Oop,Typescript,在上面的例子中,有没有一种方法可以对水果类进行编码,以便替换???与: console.log(this.getFruit.color) 到目前为止,我能管理的最接近的是: console.log(this.getFruit().color) 这看起来像是一个反模式。也许您应该使用类似访问者或存储库的模式 class apple{ seed: number; color: string; } class orange{ color: string; harves

在上面的例子中,有没有一种方法可以对水果类进行编码,以便替换???与:

console.log(this.getFruit.color)

到目前为止,我能管理的最接近的是:

console.log(this.getFruit().color)


这看起来像是一个反模式。也许您应该使用类似访问者或存储库的模式

class apple{
    seed: number;
    color: string;
}

class orange{
    color: string;
    harvested: boolean;
}

class fruit{
    fruit1: apple;
    fruit2: orange;
    currentfruit: boolean;

    constructor{
        //something
    }

    getFruit(){
        if(!this.currentfruit){
           return this.fruit1;
        }else{
           return this.fruit2;
        }
    }

    showFruitData(){
        ???
    }
}

关于风格的说明。甚至Crockford也说,新的JavaScript对象应该是PascalCase而不是camelCase。所以类、构造函数和类型通常应该是PascalCase

“我投票结束这个问题,因为它看起来像是一个家庭作业。”Blazemonger实际上不是。我在自学oop
interface IFruit {
    color: string;
}

class Apple impliments IFruit {
    seed: number;
    color: string;
}

class Orange impliments IFruit {
    color: string;
    harvested: boolean;
}

class FruitRepository {

    repository: IFruit[];

    selectedFruitIndex: number;

    get selectedFruit() {
        return this.repository[this.selectedFruitIndex];
    }

    get showFruitData() {
        console.log(this.selectedFruit.color);
    }

}