TypeScript 関数を作成しているのですが、IDE から .shift() の結果が未定義である可能性があることが通知され、その結果、さらに多くの型警告が表示されます...
これはコードです:
リーリーこの警告は、配列内に要素があるかどうか確信が持てない場合に意味があることがわかりました。その場合、.shift() は未定義を返します。しかし、この場合、while ループは temp.length が true の場合にのみ実行されます。その場合、temp.shift() は unknown ではなく値を返すことがわかっています...何かが足りないでしょうか?
shift
はArray
のジェネリック メソッドとして定義され、次のシグネチャを持ちます:配列<T>.shift(): T |未定義
したがって、コードが
を期待する必要があります。temp.length
に対してアサートするかどうかに関係なく、shift
を呼び出すときは、戻り値の型T |未定義
デフォルト値を追加するだけです:
リーリー同様のことが
temp.pop()
にも当てはまります。ここは ts-playground です