在 TypeScript 中,将类括在尖括号“<>”中意味着什么?

2023-12-27

我对 TypeScript 非常陌生,并且非常喜欢它,尤其是在 Javascript 中进行 OOP 是多么容易。然而,当涉及到使用尖括号时,我一直试图弄清楚语义。

从他们的文档中,我看到了几个例子,例如

interface Counter {
  (start: number): string;
  interval: number;
  reset(): void;
}

function getCounter(): Counter {
  let counter = <Counter>function (start: number) { };
  counter.interval = 123;
  counter.reset = function () { };
  return counter;
}

and

interface Square extends Shape, PenStroke {
  sideLength: number;
}
  
let square = <Square>{};

我无法理解这到底意味着什么或思考/理解它的方式。

有人可以向我解释一下吗?


这就是所谓的类型断言 https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#type-assertions或铸造。

这些是相同的:

let square = <Square>{};
let square = {} as Square;

Example:

interface Props {
    x: number;
    y: number;
    name: string;
}

let a = {};
a.x = 3; // error: Property 'x' does not exist on type `{}`

所以你可以这样做:

let a = {} as Props;
a.x = 3;

Or:

let a = <Props> {};

哪个会做同样的事情

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

在 TypeScript 中,将类括在尖括号“<>”中意味着什么? 的相关文章

随机推荐

  • 我是否需要为每个新的 .swift 文件创建一个新的 SpriteKit 关卡编辑器文件?

    我正在尝试熟悉 Sprite Kit 关卡编辑器 默认情况下 有一个 gamescene sks 文件附加到 gamescene swift 例如 如果我正在制作 gameoverscene 或 playscene 如果我想在关卡编辑器中使
  • 将列从 varchar(8000) 更改为 varchar(max) 是否存在任何隐藏的陷阱?

    我有很多 超过一千个地方 的遗产T SQL代码只使INSERT变成一个varchar 8000 实用程序表中的列 我们的需求发生了变化 现在该列需要能够处理更大的值 结果我需要制作该专栏varchar max 这只是一个纯数据列 没有对其执
  • hibernate标准查询时间戳

    我有一个表 其中有一列 Submitted date 没有时区的时间戳 我需要列出表中具有特定日期作为提交日期的所有记录 但不考虑数据库中的时间 我通过使用条件查询和休眠来检索记录 怎么忽略这里的时间呢 实际上 我从客户端传递了一个日期 并
  • 如何在 Meteor 中从服务器调用客户端方法?

    使用 Meteor 方法可以轻松完成相反的操作 从客户端调用服务器端 假设您想要从服务器直接运行客户端方法或作为回调运行客户端方法 一个例子是用户在您的网站上注册 在服务器上注册成功后 会弹出一个模式窗口 提醒他们注册已成功 我们试图追求单
  • 在复杂条件下使用 JPA 实体图

    我有一个基于 Spring MVC JPA Hibernate 构建的项目 我使用实体图 JPA 2 1 来定义从数据库中获取哪些数据 如下例所示 EntityGraph
  • 动态 PHP ZIP 文件

    从服务器上的文件夹中压缩 例如 2 个 文件并强制下载的最简单方法是什么 无需将 zip 保存到服务器 zip new ZipArchive the string file1 is the name we re assigning the
  • 使小部件在 Qt 布局中部分重叠

    我正在尝试使小部件在 Qt 布局中部分重叠 我当前的布局如下 通过QVBox布局 http doc qt io qt 4 8 qVboxlayout html含有四个QHBox布局 http doc qt io qt 4 8 qhboxla
  • 如何检测 Windows 10 是否处于平板电脑模式

    我正在尝试找到一种方法来检测 Windows 10 是否处于平板电脑模式 请注意 这不是查询用户是否有平板电脑 这可以通过以下方式解决GetSystemMetrics SM CONVERTIBLESLATEMODE 就我而言 无论 Win1
  • 从一组给定的数字中生成选择的最佳方法是什么?

    例如 如果要求在 1 到 5 之间做出所有选择 答案如下所示 1 2 3 4 5 1 2 1 3 1 4 1 5 2 3 2 4 2 5 3 4 3 5 4 5 1 2 3 1 2 4 1 2 5 1 3 4 1 2 3 4 5 谁能建议一
  • YAML 中的单个感叹号有什么作用?

    我正在与YamlDotNet http sourceforge net projects yamldotnet 库 加载 YAML 文件时出现此错误 解析标签时 未找到预期的标签 URI YAML 文件应该是格式良好的 因为它来自直接从 R
  • 正文中的邮件链接和换行符

    In a mailto链接 我正在尝试使用换行符 但我失败了 我尝试过 n n br 并尝试搜索 Enter 的 ascii 值 但我没有得到我想要的内容 a href Mail me a 你们能帮忙吗 Use 0D 0A body Hel
  • 参数类型中的这三个点是什么[重复]

    这个问题在这里已经有答案了 可能的重复 该方法签名中的省略号代表什么 https stackoverflow com questions 2367398 what is the ellipsis for in this method sig
  • 如何使 QListWidget 项目可编辑

    我是 PyQt 的新手 我首先在Qt Designer中制作了一个对话框 并在QListWidget中实现了简单的添加 删除 向上 向下操作 除了编辑之外的所有操作都很有效 所以我做了很多关于如何使项目可编辑的搜索 但结果并不令人满意 我能
  • Imageview 不显示圆角

    我试图使我的布局像这样 但我无法使我的图像视图像这样带有圆角 它在 Android studio 的布局编辑器中完美显示 但在真实设备中我得到的是平角 我厌倦了 XML 和代码 但没有一个对我有用 请帮助我使我的布局像这个示例图像一样 我的
  • Python:基于 Pandas 中的 2 列进行分箱

    寻找一种基于 Pandas 中的 2 列的快速而优雅的分类方式 这是我的数据框 filename height width 0 shopfronts 23092017 3 285 jpg 750 0 560 0 1 shopfronts 2
  • Ruby on Rails - 生成 bit.ly 样式标识符

    我正在尝试生成与 bit ly url 样式相同的 UUID 例如 http bit dot ly aUekJP 或 cloudapp 的 http cl dot ly 1hVU 甚至更小 我该怎么做 我现在正在为 ruby 使用 UUID
  • DTM - s.t函数与页面加载规则关系

    我不清楚动态标签管理器 DTM 如何执行 Adob e Analytics 页面加载规则 特别是它何时触发 Adob e Analytics 请求 s t 函数 Adobe 提供了此图 https marketing adobe com r
  • MVVM INotifyPropertyChanged 与自动属性名称实现

    根据我的理解 我们可以在 MVVM 风格的应用程序中使用 INofityProperty 代码类似于以下内容 object SelectedPerson public object SelectedPerson get return Sel
  • sp_send_dbmail 因附件而失败

    我需要发送带有文件附件的电子邮件 附件必须来自图像类型数据字段 在查询窗口和存储过程中运行以下代码时 不会发送电子邮件 在查询窗口中 它只显示 命令成功完成 但没有电子邮件 EXEC msdb dbo sp send dbmail reci
  • 在 TypeScript 中,将类括在尖括号“<>”中意味着什么?

    我对 TypeScript 非常陌生 并且非常喜欢它 尤其是在 Javascript 中进行 OOP 是多么容易 然而 当涉及到使用尖括号时 我一直试图弄清楚语义 从他们的文档中 我看到了几个例子 例如 interface Counter