DEV Community

Cover image for TypeScript and the Error: Cannot Redeclare Block Scoped Variable <Name>
Luiz Calaça
Luiz Calaça

Posted on • Updated on


TypeScript and the Error: Cannot Redeclare Block Scoped Variable <Name>

Hi, Devs!

Who are getting start in Typescript could face this error: "Cannot Redeclare Block Scoped Variable Name" and it means a concept into that language.

Let's see an example:

Cannot Redeclare Block Scoped Variable Name

The error is coming because we have a TypeScript feature.

1 - The file needs to be declared as a module (exports) with its own scope.
2 - The script into file will be comprehended in a global scope.

The first example is the 2 option. So, how can we solve that? Let's see another example with the export:

export and create a scope module

Therefore, when we use the export it's created a module with its own scope and not shared in global scope.

Is there other possibility? Yes! Use namespace

namespace Greetings {
    function returnGreeting (greeting: string) {
        console.log(`The message from namespace Greetings is ${greeting}.`);

Enter fullscreen mode Exit fullscreen mode

All the things into namespace it's out of global scope. You can put functions or classes into there.


Top comments (1)

shriekdj profile image
Shrikant Dhayje

Thanks dude this solved my issue


11 Tips That Make You a Better Typescript Programmer

1 Think in {Set}

Type is an everyday concept to programmers, but it’s surprisingly difficult to define it succinctly. I find it helpful to use Set as a conceptual model instead.

#2 Understand declared type and narrowed type

One extremely powerful typescript feature is automatic type narrowing based on control flow. This means a variable has two types associated with it at any specific point of code location: a declaration type and a narrowed type.

#3 Use discriminated union instead of optional fields


Read the whole post now!