我怎样才能让 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,也不知道有多复杂,很难说哪个最合适不过这里有几个选项(有还有很多)
您可以使用 --allowJs
(tsconfig compilerOptions 中的 "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;
whenever/wherever你需要参考一下。 (注意这只是一个例子,因为我不知道文件声明了什么)
如果 2 或 3 工作正常,请将其发回给维护者并要求他们将其包含在未来的版本中。
我正在使用带有 pixijs 和 greensock(或者是 gsap?)的打字稿创建一个游戏,用于所有补间。我 运行 遇到了需要使用三次贝塞尔曲线进行一些自定义缓动的情况。 Greensock 有一个 customease 文件,如果你创建了一个帐户,你就可以得到,我也这样做了。但是该文件没有它的打字稿定义。
我不知道如何在没有类型定义文件的情况下将此 CustomEase.js 文件合并到我的应用程序中。我尝试使用此 https://github.com/bigp/gsap-customease 但它没有用。我认为它陈旧过时了。
如何将 CustomEase.js 文件合并到我的打字稿应用程序中?
有几种方法可以做到这一点,它们都有不同的含义。我发现它们在不同情况下都很有用。
不知道文件的基本结构,如果是module或者global,也不知道有多复杂,很难说哪个最合适不过这里有几个选项(有还有很多)
您可以使用
--allowJs
(tsconfig compilerOptions 中的"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;
whenever/wherever你需要参考一下。 (注意这只是一个例子,因为我不知道文件声明了什么)
如果 2 或 3 工作正常,请将其发回给维护者并要求他们将其包含在未来的版本中。