ホームページ  >  に質問  >  本文

.shift() が未定義を返す可能性はありますか?

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

これはコードです:

リーリー

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

P粉461599845P粉461599845259日前337

全員に返信(1)返信します

  • P粉668804228

    P粉6688042282024-02-04 09:33:31

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

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

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

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

    T |未定義

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

    リーリー

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

    ここは ts-playground です

    返事
    0
  • キャンセル返事