使用严格的 null 检查处理 Typescript 2.0 中的数组移位返回类型

2023-11-27

在我的具有严格 null 检查的 Typescript 2.0 项目中,我有一个数组:

private _timers: ITimer[]

和一个 if 语句:

if(this._timers.length > 0){
  this._timers.shift().stop();
}

但我得到一个编译错误:

Object is possibly 'undefined'

我怎样才能让编译器相信它不是未定义的?

我可以这样解决它:

const timer = this._timers.shift();
if(timer){
  timer.stop();
}

但这似乎有点过于冗长,并且不必要地使用变量来绕过类型限制。

Thanks


非空断言运算符,在 2.0 发行说明中提到(并将出现在很快就会有文档),适用于类似这样的情况。这是后缀!,并且它抑制了这个错误:

    if(this._timers.length > 0){
        this._timers.shift()!.stop();
    }

也可以看看https://stackoverflow.com/a/40350534/43848

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

使用严格的 null 检查处理 Typescript 2.0 中的数组移位返回类型 的相关文章

  • 模块转换为 Typescript 后没有默认导出

    我已将 JavaScript 代码转换为 Typescript 并收到错误 模块没有默认导出 我尝试过使用花括号导入并使用 module exports 导出 但它们都不起作用 contactController ts const cont
  • Prettier Config 是否存在用于格式化 Switch 语句?

    我目前正在使用 Prettier 来格式化我的 Typescript 代码 这是我的问题 如果我有这样的代码 switch someVariable case one return 10 case two return 20 default
  • 在模块内调用全局变量

    我有一个名为的打字稿文件Projects ts我想引用一个名为的引导插件中声明的全局变量bootbox js 我想访问一个名为bootbox从 TypeScript 类中 是否可以 您需要告诉编译器它已被声明 declare var boo
  • 如何修复 no-unsafe-any 规则?

    我在用着TSLint https github com palantir tslint检查我的 Angular TypeScript 代码 我启用了no unsafe any https palantir github io tslint
  • 如何连接我的 angular2 应用程序 javascript 文件

    对于我的 Angular2 TypeScript 应用程序 我将所有 js 文件合并到一个 app min js 文件中 然后 System import 将此文件导入到我的 index html 页面 然后我得到一个同一模块文件中的多个匿
  • 如何让热模块重新加载在打字稿 monorepo 中工作

    因此 在过去的几天里 我一直在尝试在基于 Typescript React Koa Mongo 的 monorepo 中进行热模块重新加载 但完全徒劳无功 我感觉我的头一直在撞砖墙 HMR 的文档少之又少 几乎互联网上的所有内容都只是par
  • 如何使用 Angular 5 在单击按钮时调用多个方法?

    我正在使用 Angular 5 并面临问题 我想提交 点击 事件并一一调用两个或多个方法 请给我想法或解决方案 以便我可以提交 点击 事件并调用两个或多个方法 such as html 文件
  • 定义文件:属性的多种可能类型

    我正在为现有的 JS 库 CKEditor 编写一些定义 是否可以更具体toolbar any 文档 工具栏 数组 字符串 工具箱 别名工具栏 定义 它是工具栏名称或 工具栏 条 数组 每个工具栏也是一个数组 包含一个 UI 项目列表 库代
  • ionic 2 google 图表未捕获类型错误:(void 0) 不是函数

    error 我想添加谷歌图表并按照这个https www npmjs com package angular2 google chart https www npmjs com package angular2 google chart 但
  • LINQ SingleOrDefault() 等效项

    在 Typescript 中 我经常使用这种模式 class Vegetable constructor public id number public name string var vegetable array new Array
  • 使用 System.js 导入 Typescript 编译的模块时出错

    我最近正在学习使用 system js 导入由 Typescript 编译的模块 这些模块之前是为 require js 编译的 并且工作正常 但是合并到system js时 应用时无法导入模块系统生产 js 控制台说 Uncaught i
  • 如何使用“ADDMORE”按钮在 Angular 6 中上传多个文件?

    你好 埃弗龙 我一直在尝试上传上面 图片 用例 我知道当我们只有一个文件时这很容易 但现在的情况不同了 它由带有文件的对象数组组成 现在我的问题是如何使用对象数组渲染 formdata 对象 其中每个对象都包含一个文件 对于动态形式 我使用
  • Angularjs + Typescript,如何将 $routeParams 与 IRouteParamsService 一起使用

    我使用 routeParams 从 URI 中提取属性并为其设置本地变量 当我使用打字稿输入设置 route 参数的类型时 我无法再访问 route 参数 如何访问 routeParams 中的属性 class Controller con
  • Angular 中的动态子组件

    我正在构建一个具有一致的元素列表设计模式的应用程序 如果我有一个 A 类型的对象 我会创建AComponent它接受a作为输入 然后创建另一个组件来迭代 A 列表 AListComponent 那么如果我有一个对象 B 我需要做同样的事情
  • 为什么 TypeScript 在接口被重写时不发出警告

    interface ClockInterface setTime d Date class Clock implements ClockInterface I would expect this to raise a compile err
  • For-each 在 ionic2 和 angularjs2 中

    我用 IONIC 2 Beta 版本制作了一个应用程序 我想用for each环形 是否可以在 Angular V2 中使用每个 Thanks 首先在Component 您必须声明要显示的数组 import Component from a
  • 如何重启ngOnInit来更新Interpolation

    有办法重新启动吗ngOnInit 改变变量时 因为我想重新开始ngOnInit 改变时theme多变的 这是我的代码 设置 ts export class SettingsPage implements OnInit phraseColor
  • `Account` 是 TypeScript 中的保留字吗?

    我很困惑 以下 TypeScript 代码无法编译并出现此错误 fails ts 10 7 error TS2420 Class Account incorrectly implements interface IAccount Prope
  • 将 Meteor.js 中的模块与 Typescript 一起使用

    各位 我正在尝试做一些我认为应该很简单的事情 但我一定做错了 我试图在使用 Typescript 的流星应用程序中简单地拥有一个清晰的结构 这是我的要求 所有接口在客户端和服务器端均可用 有些类的实现只能在服务器上使用 我不想依赖文件加载顺
  • 如何将 ImmutableJS Map 与 TypeScript 结合使用

    我有一个看起来像这样的树结构 interface TreeData id number text string children TreeData 我想将其包装到一个不可变的映射中 但由于我使用的是 TypeScript 所以我希望使用 g

随机推荐

  • Java世界里有类似WPF和MVVM的东西吗?

    Java世界里有类似WPF和MVVM的东西吗 你见过吗eFace eFace 是 Java 中的 XAML WPF 解决方案 第一个版本可用于 现在下载 http www soyatec com eface installation Jav
  • 我可以在 .ld 文件中使用预处理器指令吗

    我可以在 ld 文件中使用预处理器指令吗 我需要使用两组 ld 文件中的一组 并希望让构建引擎使用宏来决定 我可以这样做吗 是的你可以 您需要为链接器脚本手动运行预处理器 如下所示 in your linker script ld out
  • 为什么 Scala 中的柯里化需要多个参数列表?

    假设我有一个有 2 个参数的函数 需要部分应用 我需要将其定义为 def f a Int b Int some code 然后我可以将其部分应用为def fWithA f a 我的问题是 为了柯里化函数 为什么 Scala 要求使用多个参数
  • 相当于Java中C的“_getch()”函数吗?

    我使用 Google Wave 并且我想模拟在您实际按下 Enter 键之前发送消息的功能 Java中是否有相当于C函数的函数 getch 您可以使用 JLine 库的 ConsoleReader readVirtualKey 方法 看ht
  • 当页面重新加载时,JavaScript setTimeout 函数是否停止?

    如果我发起一个setTimeout函数从触发器 当页面重新加载时函数会停止吗 我发起一个setTimeout功能periodic update on the onload我的页面的事件 这是否创建了多个实例periodic update 功
  • C++0x 将不再有概念。意见?这将如何影响你?

    在 2009 年 7 月C 0x 法兰克福会议 决定删除概念来自 C 0x 就我个人而言 我很失望 但我宁愿有一个可实现的 C 0x 也不愿没有 C 0x 他们表示将在稍后添加 您对此决定 问题有何看法 它将如何影响你 就我个人而言 我对删
  • 将文本基线与 div 底部对齐

    我正在尝试调整baseline中的某些文本div到所说的最底部边缘div 这样的角色就像g and j实际上会溢出 div 我似乎只能将文本元素的底部边缘与文本元素的底部边缘对齐div 我尝试过使用vertical align有价值观bas
  • CSS 选择器 * + * 定义?

    css 选择器 到底是什么意思 当您执行检查元素时 您可以在谷歌浏览器的控制台中看到它 根据我的说法 这似乎是对 每个第二个孩子 应用一种风格 但仍然想确定一下 谁能帮我吗 Example margin top 1em 表示 任何具有前一个
  • 通用 UITableView 键盘调整大小算法

    我搜索了很多调整表视图大小以适应键盘显示和隐藏的代码 但我遇到的几乎每一篇文章都假设表视图正在获取其视图控制器的整个视图 我有一个 iPad 应用程序 其中表格视图仅占据屏幕的一部分 在这种情况下调整表视图大小的正确方法是什么 我上面提到的
  • 相机覆盖随方位角和高度变化

    Folks 我正在尝试获取如下图所示的实用程序 基本上 相机显示窗口覆盖了设备屏幕的一部分 并且由曲线或直线连接的点列表作为覆盖层呈现在相机视图上 我知道这可以使用石英来绘制 但这还不到我的问题的一半 真正的问题是 随着方位和标高的变化 叠
  • 如何在Python中读取/dev/random

    我在一本书上读到 dev random就像一个无限文件 但是当我设置以下代码来查看内容是什么样子时 它什么也不打印 with open dev random as f for i in xrange 10 print f readline
  • ValueError:输入 0 与层 conv_1 不兼容:预期 ndim=3,发现 ndim=4

    我正在尝试制作一个变分自动编码器来学习编码 DNA 序列 但遇到了意外错误 我的数据是一组单热数组 我遇到的问题是值错误 它告诉我 我有一个四维输入 而我的输入显然是三维的 100 4008 4 事实上 当我打印出seq层 它说它的形状是
  • 删除超过 2 小时的 Firebase 数据

    我想删除超过两个小时的数据 目前 在客户端 我循环遍历所有数据并对过时的数据运行删除 当我这样做时 db on value 每次删除某些内容时都会调用该函数 另外 只有当客户端连接时才会删除内容 如果两个客户端同时连接会发生什么 我在哪里可
  • 有没有办法与 Netbeans 和 Github 一起工作,同步它们

    有没有办法与 Netbeans 和 Github 一起工作 同步它们 Netbeans 或其他东西的 Github 插件 Update NetBeans 7 0 现在在某些功能级别上对 Git 提供本机支持 它可以从 插件门户 更新中心 工
  • 如何更改 NuGet 包中的目标文件名?

    JavaScript 命名约定要求文件名中包含版本号 例如jQuery 1 34 min js 我有将输出的文本模板my library js在输出文件夹中 我想创建 NuGet 包my library js以这种方式 在安装时应将其部署为
  • 需要在 Singleton 类中私有化赋值运算符

    有人可以证明在 Singleton 类实现中私有化赋值运算符的必要性吗 它解决了什么问题Singleton operator Singleton const 私人的 class Singleton public static Singlet
  • 将对象的 NSMutableArray 保存/写入磁盘?

    最初我认为这会起作用 但现在我明白它不会起作用 因为artistCollection是一个 Artist 对象的NSMutableArray interface Artist NSObject NSString firName NSStri
  • 如何保存使用rhandsontable r包所做的编辑

    我的 R 程序按预期工作 它显示了一个包含我的数据帧的表 并允许我编辑值 如何捕获这些值并将它们保存到我的数据框或数据框的副本中 require shiny library rhandsontable DF data frame val 1
  • JavaFX 8 3D场景交点

    是否有可能在 JavaFX 8 3D 场景中沿着射线 例如 PickRay 找到点 从 3D 空间中具有某个 3D 方向向量的任意点开始 其中射线与网格中的三角形 MeshView 内的 TriangleMesh 相交 我知道这是在 Cam
  • 使用严格的 null 检查处理 Typescript 2.0 中的数组移位返回类型

    在我的具有严格 null 检查的 Typescript 2 0 项目中 我有一个数组 private timers ITimer 和一个 if 语句 if this timers length gt 0 this timers shift