検索

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

Typescript では未割り当てオブジェクトのエラーチェックができない

次の js を typescript に変換しようとしていますが、account オブジェクトが割り当てられていないため、コードがビルドされず、チェックするのに苦労しています:

リーリー

上記のコードは js で正常に動作したので、次の ts に変換しましたが、何かを割り当てる前にアカウント変数を使用しようとしているため、最後の if はコンパイルできません。

リーリー

account オブジェクトを変更して、空か未定義かを確認するにはどうすればよいですか?具体的に null に設定しようとしましたが、オブジェクトを null に設定できないと表示されます。

P粉986860950P粉986860950232日前523

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

  • P粉904450959

    P粉9044509592024-04-02 09:49:17

    値が割り当てられるまで変数を使用できないという問題の解決策は非常に簡単です。変数に値を割り当てるだけです。

    この値は、最初は 未定義 であることを明確にすることができます。これは、宣言されていても値が割り当てられていない変数に起こることです。または、null など、より意図的な「null」初期値を使用することもできます。

    もちろん、これにより変数の型がこの初期値を含む共用体に変更されますが、それは使用方法と一致しているため、問題になるとは思いません。

    ちなみに、object はあまり有用な型ではありません。糸くずがある場合は、警告が表示される場合があります。何らかの形式の ロギング の方が便利でわかりやすいでしょうか?

    返事
    0
  • P粉752290033

    P粉7522900332024-04-02 09:29:28

    これを行う場合 ->

    リーリー

    アカウントは オブジェクト のみであることを Typescript に指示しますが、Typescript では割り当てを遅らせることができますが、オブジェクトがアカウントに割り当てられない可能性があることが検出された場合は、 - > 変数「account」は代入前に使用されます。

    実際のテストを行うことを検討してください -> if (アカウント) {

    論理的に、あなたのタイプは object または unknown

    です。 リーリー

    場合によっては、値を明示的に設定解除する方が合理的であるため、 null -> let account:object |null=null

    を使用することを好む人もいます。

    返事
    0
  • キャンセル返事