TypeScript - 输入 'number | undefined' 不能分配给类型 'number'

2023-12-23

这是我的代码:

var a:number;
a = 4;

var myArr: number[];
myArr = [1,2,3];
myArr.push(1);

a = myArr.pop();

当我将“module”(在我的 tsconfig.json 文件中)设置为“system”或“amd”进行编译以允许我将输出捆绑到“outFile”位置时,我收到此错误:

hello-world.ts:23:1 - 错误 TS2322:输入“number |”未定义'不是 可分配给键入“数字”。类型“未定义”不可分配给 输入“号码”。

a = myArr.pop();

它从哪里获取“未定义”类型?另外,如何解决此错误而不将“strict”设置为 false(在我的 tsconfig.json 中)?


Array.prototype.pop()返回类型 number 或未定义。这就是 number undefined 的由来。

对对象执行 pop() 时,当 array.length > 0 时返回数字,当 array.length = 0 时返回 undefined。

您应该检查是否myArr.pop() !== undefined

-or-

a: number | undefined;

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

TypeScript - 输入 'number | undefined' 不能分配给类型 'number' 的相关文章

随机推荐

  • CSS3 Flexbox 项目之间的间距

    对于 Flexbox 来说有些陌生 尽管在 CSS 方面经验丰富 在我看来 我读过的大多数教程都方便地 掩盖 的一件事是 Flex 项目之间的间距 例如 被引用最多的教程之一是CSS Tricks 中的这个 https css tricks
  • 创建Web服务时Eclipse Axis错误

    每次我尝试在 Eclipse 中创建新的 Web 服务时 都会收到以下错误 IWAB0489E Error when deploying Web service to Axis runtime axis admin failed with
  • Mailkit 对 Imap 进行身份验证失败

    我正在尝试使用 MimeKit 和 MailKit 从收件箱中获取电子邮件 但登录邮件服务器Imap不起作用 我使用 993 端口和 ssl 我尝试使用 Telnet 在端口 143 上连接 登录 获取 它有效 我尝试使用 Openssl
  • 使用Reducer React方法

    我正在玩useReducerReact 的 api 并且想知道理论 文档 部分和我实现的部分之间的区别 带有 useReducer 钩子的组件的初始状态 const fields dispatch React useReducer form
  • 擦除突出显示的 JavaScript getSelection 函数

    突出显示不是问题 我的问题是 如何在 javascript 中使用 window getSelection 删除突出显示 并创建节点新跨度关闭和新跨度开口以擦除选定的突出显示区域 请参阅屏幕截图 function removeHighlig
  • 在Python中交错多个相同长度的列表[重复]

    这个问题在这里已经有答案了 在Python中 有没有一种好方法来交错两个相同长度的列表 说我被给予 1 2 3 and 10 20 30 我想把它们变成 1 10 2 20 3 30 发布问题后 我意识到我可以简单地执行以下操作 val f
  • 通过 C#.NET 将 ZPL 打印到 Zebra 打印机

    我正在建立一个网站 将 ZPL 代码打印到 Zebra 打印机 140XiIII 具体如下 打印机通过并行端口连接到计算机 打印机未连接到网络 网站管理员希望尽可能避免使用 Javascript 而是专注于 C 我尝试过使用代码将 ZPL
  • R 中的虚拟列,提供的示例[重复]

    这个问题在这里已经有答案了 我有一个看起来像这样的数据框 uid language name 1 333 English 2 333 French 3 333 Dutch 4 654 Spanish 5 546 English 6 546
  • 如何正确导入stddraw?

    编辑 IntelliJ CE 我想要的 能够写作 setCanvas 500 500 代替 StdDraw setcanvas 500 500 问题 我不知道如何正确导入 Stddraw 库 如果我只是这样做 import StdDraw
  • Yii2 Email 如何设置发件人姓名

    我使用 Mailer 发送电子邮件 所以我对发件人姓名有疑问 这是我的配置 mailer gt class gt yii swiftmailer Mailer useFileTransport gt false messageConfig
  • 如何从标准 ServiceStack 错误响应中删除堆栈跟踪

    我刚刚开始使用 ServiceStack 我想了解是否可以从标准错误响应中删除堆栈跟踪 我尝试关闭调试模式但没有任何运气 public override void Configure Funq Container container Set
  • Pandas 图,vars() 参数必须具有 __dict__ 属性?

    它之前工作得很好 但由于某种原因 现在我遇到了奇怪的错误 熊猫版本 1 2 3 matplotlib 版本 3 7 0 示例数据框 df cap Date 0 1 2022 01 04 1 2 2022 01 06 2 3 2022 01
  • 在链接点击的另一个网站上使用相同的 php 会话

    我有个问题 假设我在网站上域名1 com我点击一个链接域名1 com这让我想到域名2 com 但我想用同样的session id 设置为session start in 域名1 com on 域名2 com 我如何在 PHP 中实现这一点
  • 处理 nls - R 脚本中的 0 错误

    有什么方法可以让我的 nls 在进行非线性拟合时具有 0 残差误差吗 我的数据中有一些情况 其中拟合应该有 0 错误 但 nls 总是失败并吐出错误 谁能告诉我 如何测试这是否是 nls 吐出的错误 如何允许 0 错误情况 完美契合 这是我
  • React Native XCode 项目产品存档因架构 arm64 的重复符号而失败

    奇怪的是 我似乎无法让 Archive 在 XCode 中工作 但如果我不尝试 Archive 而只是构建发布版本 则构建会成功 并且不会出现重复符号的错误 该项目也可以在设备上正确构建 我已经搜索了这个主题并尝试禁用可测试性 并将项目设置
  • 此环境中不提供编译器。也许您正在 JRE 而不是 JDK 上运行?

    我正在使用 m2eclipse 在 Eclipse 中编译一个项目 我在Eclipse中设置JDK路径如下 Windows gt preferences gt installed jres gt jdk1 7 xx path 但这显示错误
  • MongoDB 与 Grails Scaffolding 的问题(在 MySQL 中不会发生)

    我尝试使用 MongoDB 2 0 6 替换 MySQL 5 5 25 来测试 Grails 2 1 应用程序 但遇到了一些奇怪的问题 使用 MongoDB 但不使用 MySQL 时出现的问题 使用脚手架时 我无法使用静态约束对字段进行排序
  • 为什么要使用 CGRectMake 这样的函数?

    我很好奇为什么像 CGRectMake 和 CGPointMake 这样的函数存在并被广泛使用 相反 您可以执行以下操作 CGRect x y width height 由于没有函数调用 这肯定更有效 尽管我猜效率不是很高 您还可以设置原点
  • 西纳特拉与费加罗宝石

    我正在尝试将 Figaro gem 与 Sinatra 一起使用 我已经安装 Figaro 并创建了以下文件 文件夹 config application yml 在此文件中我添加了一些环境变量 ENV GMAIL USERNAME ENV
  • TypeScript - 输入 'number | undefined' 不能分配给类型 'number'

    这是我的代码 var a number a 4 var myArr number myArr 1 2 3 myArr push 1 a myArr pop 当我将 module 在我的 tsconfig json 文件中 设置为 syste