hasOwnProperty, похоже, является популярным решением, но стоит отметить, что он работает только со строками и может быть дорогим для вызова.
Если вы используете объекты в качестве ключей в вашем словаре, hasOwnProperty не будет работать.
Более надежным и эффективным решением является использование строгого равенства для проверки неопределенности.
function exists(key:*):Boolean {
return dictionary[key] !== undefined;
}
Не забудьте использовать строгое равенство, иначе записи с нулевым значением, но действительным ключом будут выглядеть пустыми, т.е.
null == undefined // true
null === undefined // false
И вообще, как уже упоминалось, использование in
тоже должно работать нормально
function exists(key:*):Boolean {
return key in dictionary;
}