Closed3
denoのassertEqualsでclassを比較、strict privateにするとプロパティが比較されてない
a.ts
class A {
#prop: string
get prop {
return this.#prop
}
}
みたいな感じにして、
a_test.ts
Deno.test("a test", () => {
assertEquals(new A("hello"), new A("world"))
})
がこけると思ったら、テストをパスしている。
どうもstrict privateなプロパティが外から見えてない?(だからstrict privateなのかも)
console.log(new A("hello"))
// A { }
なので、一つ前の比較はプロパティのhelloとworldを比較できていなくて、空のAオブジェクト同士の比較になっていてパスしているよう。
privateにしたり、publicにすると見える
a.ts
class A {
private prop: string
}
console.log(new A("hello"))
// A { prop: "hello" }
nodeで試しても同じ。
strict privateなプロパティを使った場合、assertEqualsで比較できない?
とりあえずprivateにしておくか
このスクラップは2021/04/07にクローズされました