状況
↓のように@ApiPropertyOptional({ type: User })
で指定したところ、
project.model.ts
export class Project extends Model {
・・・
@ApiPropertyOptional({ type: [User] })
@BelongsToMany(() => User, () => ProjectMember)
members?: User[];
SwaggerUIでProjectモデルを展開すると、↓のようにmembersにUserが反映されずstringとなってしまいました
typeにクラスでなくGetter関数を指定する
こちらで解決策が提示されていました
循環参照により型がうまいこと読めていなかったようです。
type: () => [User]
のように無名関数で型を返すようにしてあげるだけです
project.model.ts
@ApiPropertyOptional({ type: () => [User] })
@BelongsToMany(() => User, () => ProjectMember)
members?: User[];
SwaggerUIで再度確認すると、無事にUserクラスのモデルが反映されました