我正在使用带有pixijs和greensock的打字稿(或gsap?)来创建所有补间游戏。我遇到了需要对三次贝塞尔曲线进行自定义缓动的情况。 Greensock有一个customease文件,如果您创建了一个帐户,我可以这样做。但是该文件没有打字稿定义。
我不知道如何在没有类型def文件的情况下将此CustomEase.js文件合并到我的应用程序中。我尝试使用此https://github.com/bigp/gsap-customease,但没有成功。我认为它已经过时了。
如何将CustomEase.js文件合并到我的打字稿应用程序中?
最佳答案
您可以通过多种方式执行此操作,并且它们都有不同的含义。我发现它们在不同情况下都很有用。
不知道文件的基本结构,文件是模块还是全局文件,也不知道文件的复杂程度,很难说哪个文件最合适,但是这里有一些选择(还有更多选择)
您可以使用--allowJs
(在tsconfig编译器选项中为"allowJs": true
),它使您可以直接从混合TypeScript源使用JavaScript源,而无需任何声明。 (ES Next语法当然会自动转译)
手工编写一个声明文件。
通过以下方式自动生成声明文件(也是手写声明的一个很好的起点)
创建CustomEase.js
的副本
将其重命名为CustomEase.ts
只需一步,运行tsc --declaration ./CustomEase.ts
删除CustomEase.ts
将生成的CustomEase.d.ts
声明文件保留在JavaScript旁边。
将文件重命名为CustomEase.ts
并保留它。您可能会遇到类型错误,但是如果其中包含有效的JavaScript,TypeScript将很高兴使用它,并在必要时进行翻译。
(不推荐)如果文件的形状非常简单,例如,如果它只是定义一个名为customEase
的全局名称,则可以编写
declare const customEase: any;
无论何时何地都需要参考它。 (请注意,这只是一个例子,因为我不知道文件声明了什么)
如果2或3运作良好,请将其发送回维护人员,并要求他们将其包含在将来的发行版中。