ぐっすり休んだ後、なんとか問題を解決できました。
Typeormは、typescriptでエンティティの変数に指定した入力に基づいて、データベースフィールドのタイプを設定します。 Typeormは、以下のコードを varcharにキャストします。 文字列を指定したため、postgresデータベースのフィールド typescriptのタイプとして。
@Column({
unique: true,
nullable: true,
})
resetPasswordToken!: string;
これは私の問題があるところでもあります。 Typeormはフィールドの入力を受け取り、読み取った入力に基づいてそのデータベースフィールドを作成しようとします。以下のコードは正しいですが、typescriptは基本的に両方のタイプを単一のオブジェクトにカプセル化します。 そのオブジェクトはTypeormによって読み取られているものであり、エラーが発生します。
resetPasswordToken!: string | null;
問題を解決するには、次のようにデータベースフィールドタイプを明示的に指定する必要がありました。
@Column({
type: 'text',
unique: true,
nullable: true,
})
resetPasswordToken!: string;