我的课很少。Test~
课程延伸FrameModel
.
我如何创建地图string
的子类FrameModel
?
import FrameModel from '../../FrameModel';
import TestShipModel from './TestGeneratorModel';
import TestGeneratorModel from './TestGeneratorModel';
import TestPlanetModel from './TestGeneratorModel';
export class DiscriminatorMappingData
{
static mapping: { [key: string]: typeof FrameModel } = {
"TestShip": TestShipModel,
"TestGenerator": TestGeneratorModel,
"TestPlanet": TestPlanetModel,
}
}
这最终会出现错误:
DiscriminatorMappingData.ts(8,5):错误 TS2322:类型 '{ [x: string]: typeof "...' 不可分配给类型 '{ [key: string]: typeof "...'。
索引签名不兼容。
类型“typeof“...models/T...”不可分配给类型“typeof“.../FrameModel””。
类型“typeof“.../models/T...”中缺少属性“FrameModel”。
我认为这可以用泛型来完成,但我不确定如何做。
您可以使用基类(FrameModel)的类型声明哈希表,并使用后代类型作为实际值(为了简单起见,我省略了模块):
class FrameModel {
}
class TestShipModel extends FrameModel {
}
class TestGeneratorModel extends FrameModel {
}
class TestPlanetModel extends FrameModel {
}
export class DiscriminatorMappingData
{
static mapping: { [key: string]: typeof FrameModel } = {
"TestShip": TestShipModel,
"TestGenerator": TestGeneratorModel,
"TestPlanet": TestPlanetModel,
}
}
这段代码对我有用打字稿游乐场.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)