Back to articles
Why Truthy Checks can Break on Zero in TypeScript

Why Truthy Checks can Break on Zero in TypeScript

via Dev.to JavaScriptJade Banks

JavaScript/TypeScript can treat non-boolean values as booleans in certain situations. Basically, there are a set of values which are defined as Falsy . All other values are considered Truthy . When combined with Optional Properties , code can be more concise and easier to read. Consider a system for filtering numerical values where each filter property is optional. type FilterOptions = { greaterThan ?: number , lessThan ?: number , }; /* Returns true if `value` satisfies the filter, false otherwise */ function isInFilter ( value : number , filter : FilterOptions ): boolean { if ( filter . greaterThan && value <= filter . greaterThan ) return false ; if ( filter . lessThan && value >= filter . lessThan ) return false ; return true ; } /* Demonstrates the filtering function by logging the numbers between -5 and 5 that satisfy the filter */ function filterExample ( filter : FilterOptions ) { const results : number [] = []; for ( let i = - 5 ; i <= 5 ; i ++ ) if ( isInFilter ( i , filter )

Continue reading on Dev.to JavaScript

Opens in a new tab

Read Full Article
8 views

Related Articles