我正在使用带有RequireJS的TypeScript。正如您在下图中所看到的,我使用RequireJS配置定义了一些导入;当然,这些导入来自<script>
标签:
TypeScript无法看到这些声明,因此我只想将它们声明为全局或其他东西,以避免转换错误。 在这种情况下最好的做法是什么?一切似乎运行良好,但我确实得到了更多的编译错误,当然还有红色语法突出显示。
在第一张图片中,我们看到requirejs
无法识别,在下图中我们也看到TypeScript不知道'redux'
是什么,(但它在RequireJS配置)。
所以我想做的是告诉TypeScript以下依赖项:requirejs,redux,react,rxjs,socketio等
答案 0 :(得分:1)
问题的一部分是我需要运行:
npm install -D @types/requirejs
npm install -D @types/redux
然后在我的tsconfig.json
中添加:
"types": [
"node",
"lodash",
"react",
"react-dom",
"redux",
"react-redux",
"async",
"requirejs"
],
"typeRoots": [
"node_modules/@types"
],
但是,为了解决TypeScript无法理解前端<script>
标记依赖关系的问题,看起来我们可以这样做:
取消引用Globals为了使Typescript编译器满意 并且最终没有编译错误,或者有一个类型的船载荷 进口你只能使用一次或两次,有时更容易 只需自己管理外部库。使用a导入它 常规脚本标记,或打包为单独的供应商包的一部分 然后在主页面中简单引用。
因此,我们可以直接导入而不是使用导入来拉入库 像过去一样使用标签:
然后在任何要使用它们的Typescript类/组件中 库通过显式取消引用每个库全局变量 明确使用声明并将它们转换为任何:
declare var redux:any;
declare var socketio: any;