为了账号安全,请及时绑定邮箱和手机立即绑定

对象可能是“未定义”打字稿

对象可能是“未定义”打字稿

慕神8447489 2021-04-28 21:17:55
我试图从一个对象访问值。但是我收到以下错误。对象可能是“未定义”打字稿我的TypeScript代码:import { SqlClient } from 'msnodesqlv8';declare var require: any;const sql: SqlClient = require('msnodesqlv8');const connectionString =  'server=.,1433;Database=emps;Trusted_Connection=Yes;Driver={SQL Server Native Client 11.0}';const query = 'SELECT * FROM [dbo].[sample] WHERE id = 117';sql.query(connectionString, query, (err, rows) => {  console.log(rows);   // this works fine, but when i try to access its value using object key, it fails  console.log(rows[0].Id);  // this fails});在JavaScript中可以正常工作。TypeScript的实现方式是什么。
查看完整描述

1 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

之所以会出现此错误,是因为如果rows数组不包含任何元素,则该数组rows[0]将是未定义的。两种可能的解决方案:

1)检查它是否确实有数据,例如

if (rows[0]) {
    console.log(rows[0].Id)
    }

2)禁用您的strictstrictNullChecks选项tsconfig.json在此处查看更多信息)。这将沉默的错误,但是如果它实际上你会得到一个运行时错误不确定的,所以你可能要检查,而不是,除非你是绝对肯定它会永远有数据的价值。


查看完整回答
反对 回复 2021-05-13
  • 1 回答
  • 0 关注
  • 325 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信