Я был удивлен, узнав, что свойства класса TypeScript могут исчезнуть из переданного вывода, если им никогда не назначено значение.Обязательные свойства не определены
Этот машинопись класс ...
class Foo {
value: any;
}
становится ..
var Foo = (function() {
function Foo() {
}
return Foo;
}());
Свойство Foo.value
не объявлен в качестве дополнительного имущества, так что я бы ожидать, что конструктор для создания этого имущества, независимо от того, было ли ему присвоено значение.
var Foo = (function() {
function Foo() {
Object.defineProperty(this, 'value', {});
}
return Foo;
}());
Как я могу получить это поведение?
Может быть просто вид оптимизации? Нет смысла создавать какой-либо код для свойств, которые никогда не назначаются, следовательно, всегда не определены. – enkryptor
Итак, нет ли проверяемой разницы между свойством, значение которого установлено на 'undefined' и полное отсутствие свойства? –
Я верю, что 'hasOwnProperty' будет вести себя по-другому @StevenLiekens – Paarth