我怎样才能让 Greensock CustomEase 与打字稿一起工作?

How can I get Greensock CustomEase to work with typescript?

我正在使用带有 pixijs 和 greensock(或者是 gsap?)的打字稿创建一个游戏,用于所有补间。我 运行 遇到了需要使用三次贝塞尔曲线进行一些自定义缓动的情况。 Greensock 有一个 customease 文件,如果你创建了一个帐户,你就可以得到,我也这样做了。但是该文件没有它的打字稿定义。

我不知道如何在没有类型定义文件的情况下将此 CustomEase.js 文件合并到我的应用程序中。我尝试使用此 https://github.com/bigp/gsap-customease 但它没有用。我认为它陈旧过时了。

如何将 CustomEase.js 文件合并到我的打字稿应用程序中?

有几种方法可以做到这一点,它们都有不同的含义。我发现它们在不同情况下都很有用。

不知道文件的基本结构,如果是module或者global,也不知道有多复杂,很难说哪个最合适不过这里有几个选项(有还有很多)

  1. 您可以使用 --allowJs(tsconfig compilerOptions 中的 "allowJs": true),它允许您直接从混合的 TypeScript 源中使用 JavaScript 源,而无需任何声明。 (ES Next语法当然会自动转译)

  2. 手写声明文件

  3. 按以下方式自动生成声明文件(也是手写声明的一个很好的起点)

    • 创建 CustomEase.js

    • 的副本
    • 重命名为CustomEase.ts

    • 在一个时间步中,运行 tsc --declaration ./CustomEase.ts

    • 删除CustomEase.ts

    • 将生成的 CustomEase.d.ts 声明文件与 JavaScript.

    • 一起保留
  4. 将文件重命名为 CustomEase.ts 并保留它。您可能会遇到类型错误,但如果它包含有效的 JavaScript,TypeScript 将愉快地使用它并根据需要转换它。

  5. (不推荐)如果文件的结构非常简单,例如它只定义了一个名为customEase的全局变量,你可以写

    declare const customEase: any;
    

    whenever/wherever你需要参考一下。 (注意这只是一个例子,因为我不知道文件声明了什么)

如果 2 或 3 工作正常,请将其发回给维护者并要求他们将其包含在未来的版本中。