WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

TypeScript · Basic · question 5 of 100

What are the different ways to declare variables in TypeScript?

📕 Buy this interview preparation book: 100 TypeScript questions & answers — PDF + EPUB for $5

In TypeScript, there are three main ways to declare variables: ‘var‘, ‘let‘, and ‘const‘. Each has its own set of characteristics and use-cases. Here is a detailed explanation of each one:

1. ‘var‘: This is the traditional way to declare a variable in JavaScript. Variables declared using ‘var‘ are function-scoped, meaning they are only accessible within the function they are defined in. However, if a variable is declared outside any function, it becomes a global variable. Additionally, ‘var‘ declared variables are hoisted, meaning they are moved to the top of their scope and can be used before the actual declaration in the code.

function exampleVar() {
    if (true) {
        var x = 10; // x is function-scoped, not block-scoped
    }
    console.log(x); // This logs 10, because x is available in the entire function
}

2. ‘let‘: Introduced in ECMAScript 2015, ‘let‘ allows us to create block-scoped variables. With ‘let‘, variables are only accessible within the block they are declared. This is generally considered a more predictable and safer way to declare variables. ‘let‘ declared variables are not hoisted.

function exampleLet() {
    if (true) {
        let y = 20; // y is block-scoped
    }
    console.log(y); // This throws a ReferenceError, because y is not accessible outside the block
}

3. ‘const‘: This is also a block-scoped variable like ‘let‘, but with an added restriction - you cannot change the value of a ‘const‘ variable once it has been assigned. This makes ‘const‘ the ideal choice for declaring constants or any variable that should not change its value during execution. ‘const‘ declared variables are also not hoisted.

function exampleConst() {
    const z = 30; // z is block-scoped and has a constant value
    z = 40; // This throws a TypeError, because trying to change the value of a const variable is not allowed
}

In summary, you should generally use ‘let‘ for block-scoped variables that will change their value, and ‘const‘ for block-scoped variables with a constant value. Avoid using ‘var‘ in TypeScript to prevent issues related to function scoping and variable hoisting.

Here is a table summarizing the differences:

var let const
Scope Function Block Block
Hoisting Yes No No
Can be reassigned Yes Yes No
Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic TypeScript interview — then scores it.
📞 Practice TypeScript — free 15 min
📕 Buy this interview preparation book: 100 TypeScript questions & answers — PDF + EPUB for $5

All 100 TypeScript questions · All topics