Angular2将数据映射为特定对象类型

2023-11-24

我根据 Angular2 教程创建了一个非常简单的应用程序。

首先,我有一个非常简单的“Book”模型:

 /**
 * book model
 */
export class Book {
    public data;

    /**
     * constructor
     * @param id
     * @param title
     * @param pages
     */
    constructor(
        public id,
        public title:string,
        public pages:Array
    ){
        alert('it works'); // just a check
    }
}

在我的服务中,我得到这样一本书:

return this._http.get('getBook/1')
        .map(function(res){
            return <Book> res.json();
        })

我的期望是,这将获取生成的 JSON 数据并将其“映射”到 Book 对象。

但是,它只返回一个类型为“Object”的对象。

我可以自己创建一个新的 Book 对象并在构造函数中传递参数,如下所示:

return new Book(res.id, res.title, res.pages);

这是最好的方法吗?我错过了什么?


是的,将对象转换为 TypeScript 中的类型不会创建该类型的实例。它只是 TypeScript 的一个用于类型检查的工具。

如果你实际上想要一个实例Book你需要使用类似的东西:

return this._http.get('getBook/1')
    .map(function(res){
        var data = res.json();
        return new Book(data.id, data.title, data.pages);
    })

回答你的问题。事实上,如果您的类型中只有字段(例如带有接口),则强制转换就足够了。此外,如果您想稍后使用方法,则有必要隐式创建该方法的实例Book类型(见上文)而不是强制转换。否则你将无法使用它们(它们在你的对象上将是未定义的)...

请参阅此问题了解更多详细信息:

  • 如何将 JSON 对象转换为 Typescript 类
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular2将数据映射为特定对象类型 的相关文章

随机推荐

  • 用于纯 Firebase JavaScript API 的 orderby 对象过滤器

    I found angularFire当与纯 Firebase JavaScript API 结合使用时 总是让我感到困惑 假设我不知道如何调用 Firebase datasapshot APIss name ss hasChild ss
  • 在python中获取函数调用者的信息

    我想获取有关 python 中特定函数的调用者的信息 例如 class SomeClass def init self x self x x def caller self return special func self x def sp
  • 内存泄漏单元测试C++

    我刚刚解决了应用程序中的内存泄漏问题 现在我想编写一个单元测试以确保这种情况不会再次发生 我正在寻找一种方法来检测当前应用程序 工作集 在某些功能之前和之后的内存使用情况 例如 long mem used GetMemUsed Do som
  • Java ObjectInputStream 挂起

    我现在感觉真的很愚蠢 伙计们 基本上我是通过本地计算机上的 TCP 连接的 当我尝试在客户端创建输入 输出流时 它不会通过创建对象输入流 是什么赋予了 这在打印 2 后停止 没有异常或任何东西 这不是我第一次使用这个类 这部分是我感到困惑的
  • XSLT 将同名兄弟节点的值合并/连接到单个节点

    输入XML
  • 实体管理器是否创建与数据库的连接?

    在我的项目中 我忘记关闭每个操作的实体管理器 一段时间后 由于与 mysql 服务器的连接过多 我遇到了异常 这是否意味着每个实体管理器都建立连接 当我们忘记关闭连接时会发生什么 我只使用了一个实体管理器工厂 假设您正在使用应用程序管理的实
  • 根据“grid_location”方法,按钮有自己的坐标系吗?

    我正在尝试使用grid location方法 从网格几何管理器 在 Tkinter 中 但似乎我做错了什么 这是我的代码 from tkinter import root Tk b Button root text 00 b grid ro
  • 如何确保我的 git 存储库代码是安全的?

    如果我们的组织要从像 subversion 这样的中央服务器 VCS 切换到像 git 这样的分布式 VCS 我如何确保我的所有代码都不会出现硬件故障 使用中央服务器 VCS 我只需要每天备份存储库 如果我们使用 DVCS 那么所有开发人员
  • iOS 7 自定义后退按钮

    我想使用自定义后退按钮 在 iOS 6 中 一切都很完美 但是iOS 7很奇怪 UIBarButtonItem appearance setBackButtonBackgroundImage UIImage imageNamed back
  • org.openqa.selenium.InvalidCookieDomainException:使用 Selenium 和 WebDriver 文档不支持 cookie

    我正在尝试将 cookie 推送到从上一个会话存储的 selenium firefox webdriver 但出现错误 org openqa selenium InvalidCookieDomainException Document is
  • UIPanGestureRecognizer 起点已关闭

    我有一个 UIView 它附加了一个 UIPanGestureRecognizer 手势工作正常 只是起点不是平移第一次开始的位置 它通常在 x 和 y 坐标中偏离 5 到 15 个像素 不幸的是 方差不是一致并且似乎与平移运动发生的速度有
  • 使用 php 向后读取文件行(fgets)

    我有一个txt文件 我想向后阅读 目前我正在使用这个 fh fopen myfile txt r while line fgets fh echo line br 这将输出我文件中的所有行 我想从下到上阅读这些行 有办法做到吗 第一种方式
  • C# 服务:如何获取用户配置文件文件夹路径

    我需要从 C windows 服务中获取用户目录 比如 C Users myusername 理想情况下 我希望有漫游路径 就像 C Users myusername AppData Roaming 当我在控制台程序中使用以下内容时 我得到
  • 匹配结束 HTML 标签的正则表达式

    我正在编写一个小型 Python 脚本来清理 HTML 文档 它的工作原理是接受要保留的标签列表 然后解析 HTML 代码 丢弃不在列表中的标签我一直在使用正则表达式来做到这一点 并且我已经能够匹配开始标签和自关闭标签但不关闭标签 我一直在
  • 如何自动生成日期属性为 Date 而不是 NSDate 的 NSManagedObject 子类?

    我目前正在将我的项目更新到 Swift 3 并将所有 NSDate 方法和扩展移至 Date 以便在应用程序中保持标准 问题是我使用 Xcode 自动生成 NSManagedObject 子类 并且它生成日期属性为 NSDate 而不是 D
  • Spring:如何在运行时更改接口实现

    作为一名 Java 开发人员 我经常需要在接口的不同实现之间进行选择 有时这种选择是可以做到的once 而有时我需要不同的实现来响应我的程序收到的不同输入 换句话说 我需要能够change运行时执行 这可以通过帮助程序对象轻松实现 该对象将
  • 根据行数据更新 DatagridView 单元格背景颜色

    您好 我有一个 DatagridView 我希望它根据每行中的数据更改背景颜色 Ex 人 1 人 2 人 3 100 200 150 300 100 50 在第一行中 我希望它使 100 具有红色背景颜色和 200 绿色 或者 最低值 红色
  • Python 中连接字符串的最有效方法

    在问这个问题时 我正在使用Python 3 8 当我说高效时 我只是指字符串连接的速度 或者用更专业的术语来说 我问的是时间复杂度 而不是考虑空间复杂度 目前我能想到的唯一方法是以下 3 种 a start b end Method 1 r
  • 如何从 .cab 文件安装 mscomct2.ocx 文件(Excel 用户表单和 VBA)

    我有一个 Excel 电子表格 其中包含使用日历控件的用户表单 它在我的机器上运行良好 但其他人无法使用它 因为他们缺少 mscomct2 ocx 文件 我找到了下载地址 http support microsoft com kb 2973
  • Angular2将数据映射为特定对象类型

    我根据 Angular2 教程创建了一个非常简单的应用程序 首先 我有一个非常简单的 Book 模型 book model export class Book public data constructor param id param t