私はこれらのようなコードスニペットを見てきました:
export interface IUser {
email?: string;
firstName?: string;
lastName?: string;
}
しかし、なぜ変数名の末尾に疑問符が付いているのでしょうか。このスニペットは、TypeScriptでmongodbを使用する例の一部です。
答えはおそらくどこかにありますが、見つからないため、間違ったキーワードを使用しているようです。
TypeScriptでは、<name>?: <typename>
<name>: <typename> | undefined
の省略形。シンボルmayに示されたタイプの値が含まれるか、mayに値undefined
(これはnull
のようなものです)。
これは、(TypeScript 2の新機能)--strictNullChecks
オプションが有効になっている場合に重要です。 Nullおよびundefined-awareタイプ オプションに関するドキュメントは、おそらくこれが有用である理由を理解し始める必要がある場所です。
それは彼らがそこにいることができるが、ある必要はないことを意味します。オプションのフィールド名を使用できます。使用するのは非常に一般的です。
使用例は、Webサイトのユーザーがオプションの表示名を持つことを許可することです。
私が間違っていない場合、それはオプションであることを示します。つまり、nullになる可能性があります。