にオプションの単一のプロパティを確認します:のは、私はPerson型を持っているとしましょう...</p> <p>を活字体、2.2で活字体
interface Person {
name: string;
hometown: string;
nickname: string;
}
そして、私は、人を返す関数を作成したいのですがニックネームは必要ありません:
function makePerson(input: ???): Person {
return {...input, nickname: input.nickname || input.name};
}
input
の種類は?私はPerson
と同じタイプを指定する動的な方法を探していますが、nickname
はオプションです(nickname?: string | undefined
)。私がこれまでに考え出した最も近いものはこれです:
type MakePersonInput = Partial<Person> & {
name: string;
hometown: string;
}
が、私は必要はなく、あるものをされているすべての種類を指定する必要があるため、それは、私が探しているかなりのものではないのですオプション。
こんにちは...これは私が尋ねた質問にはすばらしい応答ですが、私が実際に解決しようとしていることはあまりありません:/質問の単純化のために申し訳ありません。私が聞いたところでは...基本的に、すべての人はニックネームを持っていましたが、私はこの機能にそれを必要としたくありません。提供されていない場合は、単に 'name'入力を使用します。 – DallonF
私が主張していた第2の選択肢をよりよく説明するために私の答えを編集しました。私たちがまだ同じページにいないかどうか教えてください。 RegularPersonコンストラクタは、 "ニックネーム"の値をinputの "name"の値と等しくすることに注意してください。 –
ここの 'input'はまだタイプがありません。これはこの質問の難しい部分です...私がやっていることは、TypeScriptではまだできません。私は私が見つけたもので自己解決するつもりだと思う。 – DallonF