两个ts文件不能使用同名const吗?本意是两个文件中的变量、常量应该互不干扰。

如题。使用两个同名常量会报错。

------a.ts
const greeting: string = "abc";
const temp: { x: number, y: number } = { x: 5, y: 77 };
console.log(temp);

const point: { x: number } = temp;
console.log(point);

------b.ts
const greeting: string = "abc";
const temp: { x: number, y: number } = { x: 5, y: 888};
console.log(temp);

错误信息:

img

也就是如何将每个文件都变成一个独立的模块。其中的变量、常量等都是独立的,和其他文件的同名变量、常量无关。
按说,一个独立的文件就是一个模块,(ECMAScript)他们作用域不同,同名变量、常量是不同的东西,不应该报错啊,为什么报错?

是不是需要什么设置啊

这个问题解决了。ts文件分两种,一种是全局文件,另一种是模块文件。如果文件中有export或import就认为是模块文件,否则认为是全局文件。全局文件中的常量等不能同名。在文件中加入export {},就会变成模块文件,就不会报错了,导出空,不影响程序。

建议用对象包裹,不然没法使用,可以参考vuex的module写法

你编译后的js文件是同一个?