.shift() が未定義を返す可能性はありますか?
P粉461599845
P粉461599845 2024-02-03 19:55:25
0
1
376

TypeScript 関数を作成しているのですが、IDE から .shift() の結果が未定義である可能性があることが通知され、その結果、さらに多くの型警告が表示されます...

これはコードです:

リーリー

この警告は、配列内に要素があるかどうか確信が持てない場合に意味があることがわかりました。その場合、.shift() は未定義を返します。しかし、この場合、while ループは temp.length が true の場合にのみ実行されます。その場合、temp.shift() は unknown ではなく値を返すことがわかっています...何かが足りないでしょうか?

P粉461599845
P粉461599845

全員に返信(1)
P粉668804228

shiftArray のジェネリック メソッドとして定義され、次のシグネチャを持ちます:

配列<T>.shift(): T |未定義

したがって、コードが temp.length に対してアサートするかどうかに関係なく、shift を呼び出すときは、戻り値の型

を期待する必要があります。

T |未定義

デフォルト値を追加するだけです:

リーリー

同様のことが temp.pop() にも当てはまります。

ここは ts-playground です

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート