写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会认为所有文件里的代码都是在一个作用域里的,所以即使在不同文件也不能声明同名变量