

Size: a a a











interface A {
    field?: number
}
let a1: A = {};
let a2: A = {field: undefined};
let a3: A = {field: 42};
a1.field // undefined
"field" in a1 // false
a2.field // undefined
"field" in a2 // true
"field" in object на сравнение object["field"] с undefined и все стало прекрасно. За одним исключением.
interface B {
    field: number | undefined
    // field: undefined
    // тоже является примером,
    // но бесполезным практически.
}
let b1: B = {field: undefined};
let b2: B = {field: 42};
// А вот просто {} уже не является
// здесь валидным значением
// с точки зрения TS.
b1 - ведь поле-то у нее undefined.



















