Following page 64 in Boris Cherny\'s Programming TypeScript, consider a JavaScript function like this:
function warnUser(warning) {
if (warnUser.w
Function property assignments are only allowed on function declarations and const
variables initialized with a function/arrow expression. This is a rule ingrained in the compiler, as described in the TS 3.1 changelog.
Why is let problematic but const fine?
Probably because of safety reasons. let
creates a mutable binding, so you potentially could have reassigned another value before and aren't setting a property on the function expression anymore.
TS also forbids double function declarations, therefore both rules can be statically analyzed and enforced in a predictable way.