今天心血来潮写ts教程的时候发现一个问题,如下
短短的两行代码,竟然都报错,无法重新声明块范围变量age\。明明与其他文件没有相互依赖,却会提示 [ts] 无法重新声明块范围变量“age”。。且该文件目录夹下,也没有其他文件。为什么会有这个报错呢?
原因
在默认状态下,typescript 将 DOM typings 作为全局的运行环境,所以当我们声明 age时 TS会误以为这些demo文件在未来的某个时间会合并 所以未来预防未来存在变量命名冲突 ts会在“重复”的变量名上抛出了错误提示 ,
注意,这个重复的意思是,任何合法变量名都会报错,因为未来运行环境都有可能有这个变量名,如下
声明一个aaa也会报这个错误,因为ts不知道未来环境中可能有那些变量所以全部变量都做报错处理
解决这个问题也很贱单
我们只要让TS知道这是些文件是互不影响 是独立模块就行; 故此只需要在文件末尾加上export {}即可;
如下,不报错了