Immediately invoked functions

An immediately invoked function expression (IIFE) is a design pattern that produces a lexical scope using function scoping. An IIFE can be used to avoid variable hoisting from within blocks, or to prevent us from polluting the global scope—for example:

let bar = 0; // global 
 
(function() { 
    let foo: number = 0; // In scope of this function 
    bar = 1; // Access global scope 
    console.log(bar); // 1 
    console.log(foo); // 0 
})(); 
 
console.log(bar); // 1 
console.log(foo); // Error 

In the preceding example, we have wrapped the declaration of a variable (foo) with an IIFE. The foo variable is scoped to the IIFE function and is not available in the global scope, which explains the error that is thrown when we try to access ...

Get Learning TypeScript 2.x - Second Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.