解决typescript Cannot redeclare block-scoped variable

没有依赖框架来写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;

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

原文链接:segmentfault.com

上一篇:JavaScript 数据类型与类型判断详解
下一篇:@pnpm/tarball-resolver

相关推荐

官方社区

扫码加入 JavaScript 社区