Skip to content

Latest commit

 

History

History
49 lines (39 loc) · 1.07 KB

1.md

File metadata and controls

49 lines (39 loc) · 1.07 KB

写了两行代码,一运行就报错:

let name: string 
name = 'mia'
console.log(name);

报错:

 Cannot redeclare block-scoped variable 'name'.

17405 declare const name: never;
                    ~~~~

  hello.ts:9:5
    9 let name: string
          ~~~~
    'name' was also declared here.

网上搜索了一下发现是因为,在默认状态下,typescriptDOM 作为全局的运行环境,而 DOM 中的全局 window 对象下也有个name的属性,在这里再次定义一个变量name的时候就报错了。

解决办法:

方法一:

把自己定义的变量定义为局部内的变量,即在demo的最后导出即可。 将其封装到模块(module)内,module 有自己的作用域,自然不会与全局作用域的变量产生冲突。

let name: string 
name = 'mia'
console.log(name);

export {}

方法二:

  • 网上看到说还有一种就是改变运行环境。

我们可以在 tsconfig.json 中做一下声明:

{
    "compilerOptions": {
        "lib": [
            "es2015"
        ]
    }
}