TypeScript - 将类存储为映射值?

2023-12-07

我的课很少。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(使用前将#替换为@)

TypeScript - 将类存储为映射值? 的相关文章

随机推荐

  • Angular 2 rc5,使用注入的管道的单元测试问题

    我正在使用 angular2 rc 5 我编写了一个自定义管道 可以从 json 中获取值 自定义管道 literal pipe ts 看起来像 import Pipe PipeTransform Inject from angular c
  • 在从加载标签的视图扩展的页面上使用 Django template_tag

    我已向我的应用程序添加了一个模板标签 我将其加载到位于的视图中inc base html 该视图包含我的基本 HTML 布局 我所有其他观点开始 extends inc base html 在我的视图之一中 我想引用我的模板标签 该标签加载
  • 使用三个 CSG 进行 3D 布尔运算

    按照此处的示例 http learning Threejs com blog 2011 12 10 constructive solid geometry with csg js 并使用 Three js 与https github com
  • cellDoubleClicked 文本 python

    我在使用 PyQt5 时遇到一个问题 我已经制作了一个 QTableWidget 它显示我之前在 pandas 中制作的 DataFrame 来自电子表格 我尝试做的不成功的事情是 从用户双击的单元格中获取文本 以便我可以使用该信息根据所做
  • 所有图像加载后如何发出警报?

    我正在构建一个 JavaScript 游戏 我想在加载所有图像后发出警报 我尝试了这段代码 但它不起作用 function loadEveryThing var imgNumber 0 img1 new Image img1 src 1 p
  • “#”附近的语法不正确。带有 SQL 数据库的 VB.net

    我正在尝试使用以下代码获取日期 今天的 Max 字段 Dim todaydate Format Today Date dd MM yyyy Dim sql1 As String Select max snum From tblbill wh
  • JButton 在鼠标悬停之前不可见

    我正在为我的项目创建一个图形用户界面 当 gui 首次加载时 只有背景可见 因此按钮不可见 但当鼠标悬停在按钮上时 它们是可见的 解决这个问题的办法是什么 public class Home extends JFrame New JPane
  • 在 Scala 中将嵌套案例类转换为嵌套映射

    我有两个嵌套案例类 case class InnerClass param1 String param2 String case class OuterClass myInt Int myInner InnerClass val x Out
  • Azure表存储存储多种类型

    对于以下场景 您有什么建议 我有一个名为 Users 的天蓝色表 其中列如下 首要的关键 RowKey 时间戳 名 LastName Email Phone 然后每个用户都有不同类型的任务 我们将它们称为TaskType1 和TaskTyp
  • jQuery:如果单击链接则添加类

    我在链接中调用 jquery 函数 onclick 例如 a class active href Content 1 a a href Content 2 a a href Content 3 a 正如您所看到的 第一个链接默认具有 act
  • 词形还原java [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一个词形还原Java 中英语的实现 我已经找到了一些 但我需要一些不需要太多内存来运行的东西 顶部 1 GB 谢谢 我不需要词干分析器 T
  • 在 webGL 中渲染 NURBS 曲面

    我需要一些有关在 webGL 中渲染 NURBS 曲面的帮助 几天前 我们的教授指派我们用 NURBS 绘制一面旗帜并为其制作动画 我们必须使用 webGL 并且不能使用 trhee js 我不知道如何继续 尽管我或多或少了解 NURBS
  • 将列表转换为集合会改变元素的顺序吗?

    当我做类似的事情时 U 1 0 0 0 0 0 1 0 set U 它给了我 0 0 1 0 1 0 0 0 我只想将列表转换为集合 有什么帮助吗 Thanks 套装未订购 字典也没有排序 如果您想保留特定顺序 请使用列表 gt gt gt
  • 是否有任何实际理由对 JSON 键使用带引号的字符串?

    根据克罗克福德的说法json org 一个 JSONobject由 制成由 做成members 它由pairs 每对都是由一个string and a value 有一个string被定义为 字符串是零个或多个的序列 Unicode 字符
  • Logstash 中的 JSON 解析器忽略数据?

    我已经这样做有一段时间了 我觉得 Logstash 中的 JSON 过滤器正在为我删除数据 我最初遵循的教程来自https www digitalocean com community tutorials how to install el
  • 具有基本身份验证的 jQuery AJAX 跨域

    我正在尝试通过将数据拉入网页来利用 Beanstalk beanstalkapp com API 以便人们无需访问我的 SVN 即可查看它 我正在尝试通过 jQuery 使用 AJAX 请求来访问它 代码如下 但每次都会出错 并且无法返回数
  • 如何将javascript变量值传递给php变量?

    这是我的 JavaScript 代码 我的html代码
  • 使用 Java 8 动态创建具有复合键的映射

    我想创建一个如下所示的地图 gt Map
  • 对 Google Drive 的 Python 请求

    我正在尝试使用 python requests 库将文件发送到 Google Drive api 我唯一需要它根据谷歌文档发送多部分请求https developers google com drive web manage uploads
  • TypeScript - 将类存储为映射值?

    我的课很少 Test 课程延伸FrameModel 我如何创建地图string的子类FrameModel import FrameModel from FrameModel import TestShipModel from TestGen