簡體   English   中英

對象可能是“未定義”打字稿

[英]Object is possibly 'undefined' typescript

我試圖從一個對象訪問值。 但是我收到以下錯誤。

對象可能是“未定義”打字稿

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

之所以會出現此錯誤,是因為如果rows數組不包含任何元素,那么rows[0]將是未定義的。 兩種可能的解決方案:

1)檢查它是否確實有數據,例如

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

2)禁用strictstrictNullChecks在您選擇tsconfig.json (詳見這里 )。 這將沉默的錯誤,但你會得到一個運行時錯誤,如果它實際上不確定的,所以你可能要檢查,而不是,除非你是絕對肯定它會永遠有數據的價值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM