我正在用打字脚本编写程序,并将代码编译为JavaScript,然后在浏览器上运行它.以下是我的package.json个 playbook :

"scripts": {
  "clean": "rm -rf dist/",
  // gsap.min.js is under ts/src/lib/
  "build": "tsc && copyfiles -u 1 ts/src/lib/* dist/"
},

但是,我不能在打字文件中引用gsap,因为我收到了错误Cannot find name 'gsap'.,我认为这是因为tsc不读取缩小的文件(即使allowJs标志为真).

但是,我可以在一个JavaScript文件中使用gsapFINE,因为判断不那么严格.(在JavaScript中,引用未定义的变量只会在运行时引发错误,例如在浏览器控制台中.)

try 修复

我try 定义gsap,希望gsap.min.js会覆盖该变量.然而,gsap在运行时保留undefined(至少tsc编译时没有错误).所以这是行不通的.

<!-- index.html snippet -->
<script src="dist/src/lib/pseudo.js"></script>
<script src="dist/src/lib/gsap.min.js"></script>
// pseudo.js
let gsap: any;

推荐答案

If你使用一个Bundle 包,那么如果你install个gsap(npm install gsap)而不是仅仅把它的一个缩小版本复制到你的项目中,它应该会解决gsap提供类型定义的问题.

如果您没有使用Bundle 器,请将包含类型的.d.ts个文件(从https://github.com/greensock/GSAP/tree/master/types)复制到项目的目录树中,如果TypeScrip没有自动提取它们,则通过tsconfig.json指向它们.类型文件包括必要的声明,以告诉类型脚本有关gsap全局的(具体地说,该声明在gsap-core.d.ts中).

Javascript相关问答推荐

是什么原因导致此Angular 16应用程序中类型错误时属性结果不存在?

使用TMS Web Core中的HTML模板中的参数调用过程

深嵌套的ng-container元素仍然可以在Angular 布局组件中正确渲染内容吗?

在Angular中将样式应用于innerHTML

在grafana情节,避免冲突的情节和传说

html + java script!需要帮助来了解为什么我得到(无效的用户名或密码)

setcallback是什么时候放到macrotask队列上的?

如何使用子字符串在数组中搜索重复项

使用POST请求时,Req.Body为空

在运行时使用Next JS App Router在服务器组件中运行自定义函数

Use Location位置成员在HashRouter内为空

本地损坏的Java脚本

如何在Java脚本中并行运行for或任意循环的每次迭代

我在哪里添加过滤器值到这个函数?

使用Perl Selify::Remote::Driver执行Java脚本时出错

如何按区域进行过滤并将其从结果数组中删除?

如何从嵌套的json中获取最大值

单击子按钮时将活动切换类添加到父分区

Playwright:ReferenceError:browserContext未定义

此上下文在JavaScript中