Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何订阅联合类型枚举属性_Javascript_Knockout.js_Observable - Fatal编程技术网

Javascript 如何订阅联合类型枚举属性

Javascript 如何订阅联合类型枚举属性,javascript,knockout.js,observable,Javascript,Knockout.js,Observable,我是新手,所以,我会尽可能多地描述 abstract class Fish { Type = ko.observable<FishType>(); } class SalmonFish extends Fish {...} class GoldFish extends Fish {...} enum FishType { Salmon, Goldfish, Blobfish } abstract class Cat { Type = ko

我是新手,所以,我会尽可能多地描述

abstract class Fish {
    Type = ko.observable<FishType>();
}

class SalmonFish extends Fish {...}
class GoldFish extends Fish {...}

enum FishType {
    Salmon,
    Goldfish,
    Blobfish
}

abstract class Cat {
    Type = ko.observable<CatType>();
}

class Lion extends Cat {... }
class Tiger extends Cat {... }


enum CatType{
    Lion,
    Tiger,
    Leopard
}

class AnimalViewModel {
    SelectedAnimal = ko.observable<Fish|Cat>();

    constructor() {
        this.SelectedAnimal().Type.subscribe(type => {
            //based on Type change, change SelectedAnimal to new extended class
        }, this, '')
    }
}
抽象类Fish{
Type=ko.observable();
}
SalmonFish类扩展了Fish{…}
金鱼类延伸鱼{…}
枚举鱼型{
鲑鱼
金鱼,
水滴鱼
}
抽象类猫{
Type=ko.observable();
}
类{…}
Tiger类扩展了Cat{…}
枚举类型{
狮子,
老虎,
豹子
}
类动物模型{
SelectedAnimal=ko.observable();
构造函数(){
this.SelectedAnimal().Type.subscribe(Type=>{
//根据类型更改,将SelectedAnimal更改为新的扩展类
},此为“”)
}
}
我有一个名为
SelectedAnimal
的联合类型,我想订阅
type
,根据类型,将SelectedAnimal更改为不同的类。但是
Type
这里是
any
。我如何知道
Type
FishType
还是
AnimalType

附加:subscribe中的最后两个参数是什么意思<代码>回调目标和
事件