2

没有依赖框架来写typescript,纯粹新建一个ts文件,使用tsc编译成js后,ts文件里的声明的变量、函数名都会报错:

Duplicate identifier  |  Duplicate function   // 这是具名函数和class的报错

或者

Cannot redeclare block-scoped variable  // 这是声明的变量报错

其实我们写的ts代码是没有问题的,只是ts会对我们声明的变量、具名函数、class都放在了全局作用域,在生成js文件后,js文件里的变量、函数、class会跟ts文件的重复。

解决办法

在ts文件顶端加上:

export {}

再次编译ts文件,可以看到编译后的js文件加上了:

"use strict";
exports.__esModule = true;

它会把整个文件当成一个模块来处理。这样就不会报错了。


三道杠女生
9 声望0 粉丝