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

我试图从一个对象访问值。但是我收到以下错误。


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


我的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的实现方式是什么。


慕神8447489
浏览 326回答 1
1回答

海绵宝宝撒

之所以会出现此错误,是因为如果rows数组不包含任何元素,则该数组rows[0]将是未定义的。两种可能的解决方案:1)检查它是否确实有数据,例如if (rows[0]) {     console.log(rows[0].Id)     }2)禁用您的strict或strictNullChecks选项tsconfig.json(在此处查看更多信息)。这将沉默的错误,但是如果它实际上你会得到一个运行时错误是不确定的,所以你可能要检查,而不是,除非你是绝对肯定它会永远有数据的价值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript