当前位置:  开发笔记 > 编程语言 > 正文

打字稿:允许跨多个文件的重复变量?

如何解决《打字稿:允许跨多个文件的重复变量?》经验,为你挑选了1个好方法。



1> Nitzan Tomer..:

如果您没有使用模块系统,那么您将x在全局范围内声明相同的变量.
如果你在一个模块中声明它们就可以了.

你没有得到Test命名空间的任何错误,因为它是如何编译的:

var Test;
(function (Test) {
    var x = 0;
})(Test || (Test = {}));
(function (Test) {
    var x = "fefe";
})(Test || (Test = {}));

如您所见,每个变量都在其自己的闭包内声明; 变量未声明到命名空间中.
如果你这样做:

namespace Test {
    export let x = 0;
}

namespace Test {
    export let x = "fefe";
}

你将得到相同的错误,因为它被编译为:

var Test;
(function (Test) {
    Test.x = 0;
})(Test || (Test = {}));
(function (Test) {
    Test.x = "fefe";
})(Test || (Test = {}));

编辑

这是预期的行为,编译器会阻止您无意中覆盖变量.
如果要在不同文件中使用全局范围中的相同变量,则可以执行以下操作:

// a.ts
var x = 1;

// b.ts
declare var x: number;
x = 3;

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有