これは、サービスで新しいcontent
オブジェクトをインスタンス化するスニペットです。
const newContent = new Content(
result.obj.name
result.obj.user.firstName,
result.obj._id,
result.obj.user._id,
);
問題は、このオブジェクトのインスタンス化の方法が、私のcontent
モデルのプロパティの順序に依存していることです。すべてのプロパティを設定したい値にマッピングすることで、それを行う方法があるかどうか疑問に思っていました。例えば:
const newContent = new Content(
name: result.obj.name,
user: result.obj.user.
content_id: result.obj._id,
user_id: result.obj.user._id,
);
const newContent = <Content>({
name: result.obj.name,
user: result.obj.user.
content_id: result.obj._id,
user_id: result.obj.user._id,
});
ここで、オブジェクトをインスタンス化し、タイプアサーションまたはコンテンツタイプへのキャストを使用できます。タイプアサーションの詳細: https://www.typescriptlang.org/docs/handbook/basic-types.html#type-assertions
これらの変数をすべてラップするコンストラクターにオブジェクトを渡すことができます。
type ContentData = {
name: string;
user: string;
content_id: string;
user_id: string;
}
class Content {
constructor(data: ContentData) {
...
}
}
その後:
const newContent = new Content({
name: result.obj.name,
user: result.obj.user.
content_id: result.obj._id,
user_id: result.obj.user._id,
});