3
オプションのフィールドを持つインターフェイスを定義します。私は次のことが同義語だと思った。Typescript:オプションフィールドと未定義の共用体の違いは何ですか?
(A)
:
interface State {
userDetails: undefined | string | DataStructure | Error;
}
(B)
:
interface State {
userDetails?: string | DataStructure | Error;
}
しかし、私は状態を初期化するために行く、そのような私は明示的に未定義のフィールドを設定する(A)
力:
static readonly initialAppState: AppState = {
userDetails: undefined
};
ただし、(B)
私は完全にフィールドを省略することができます
static readonly initialAppState: AppState = { };
を私は活字体が言って文句を言うでしょう定義(A)
を使用している場合、フィールドを省略しようとした場合:使用しているとき、私はフィールドを明示的に設定しなければならないのはなぜ
Property 'userDetails' is missing in type
を定義(A)
? 初期化時にこの異なる要件を強制する2つの定義の違いは何ですか?
Typesriptバージョン:2.3.4