主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ
書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。
2022/05/12
JavaScript / TypeScript の高速な Rust 実装コンパイラーである SWC ですが、特定バージョン以前だとデコレーター・クラス周りの処理があるらしく、
デコレーター・クラス周りの処理をバリバリ使っている class-transformer を使用していると、以下のようなコードが動かなくなります。
import "reflect-metadata";
import { plainToClass } from "class-transformer";
class SomeClass {
value!: string;
}
const jsonObj = { value: "Hello, World" };
const obj = plainToClass(SomeClass, jsonObj);
console.log(obj.value); // => actual: undefined, expected: "Hello, World"
具体的なバージョンは v1.2.137
より前のバージョンで、この組み合わせを使用していると、上記コードはコメントの通り undefined
が出力されます。
ので、この組み合わせで使用している場合はバージョンアップしましょう。というメモでした。
参考: