没有依赖框架来写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;
它会把整个文件当成一个模块
来处理。这样就不会报错了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。