未古其人

目录

无法重新声明块范围变量

写bug的时候,发现了这么一个事情。

ts 文件定义了

let test: Test = {
    a1: "a1",
    a2: "a2"
}
    
console.log(test);

却提示我“无法重新声明块范围变量”这么个错误。

查找“无法重新声明块范围变量”这段说明后,提示说 ts 没有模块的概念导致的云云。

所以将代码改成

{
    let test: Test = {
        a1: "a1",
        a2: "a2"
    }

    console.log(test);
}

或者

let test: Test = {
    a1: "a1",
    a2: "a2"
}

console.log(test);
export {};

就都可以了。

又或者,因为同时把同名的 js 文件打开着,所以才会引起这个问题。
只要把同名的 js 文件关掉就没问题了……

其实问题出在了变量命名空间,如果不把文件当作模块使用的话typescript会认为所有文件里的代码都是在一个作用域里的,所以即使在不同文件也不能声明同名变量

参考