- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用带有 pixijs 和 greensock(或者是 gsap?)的 typescript 创建一个游戏来进行所有补间。我遇到了一种情况,需要使用三次贝塞尔曲线进行一些自定义缓动。 Greensock 有一个customease 文件,如果你创建了一个帐户,你就可以获得这个文件,我就是这么做的。但该文件没有 typescript 定义。
我不知道如何在没有 type def 文件的情况下将此 CustomEase.js 文件合并到我的应用程序中。我尝试使用这个 https://github.com/bigp/gsap-customease但没有成功。我认为它又旧又过时。
如何将 CustomEase.js 文件合并到我的 TypeScript 应用程序中?
最佳答案
有多种方法可以做到这一点,它们都有不同的含义。我发现它们对于不同的情况都很有用。
不知道文件的基本结构,如果它是模块还是全局,也不知道它有多复杂,很难说哪个是最合适的,但这里有一些选项(有很多更多)
您可以使用 --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;
无论何时何地您需要引用它。 (请注意,这只是一个示例,因为我不知道该文件声明了什么)
如果 2 或 3 个运行良好,请将其发送回维护人员并要求他们将其包含在未来的版本中。
关于javascript - 如何让 Greensock CustomEase 与 typescript 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43596135/
我正在使用带有 pixijs 和 greensock(或者是 gsap?)的 typescript 创建一个游戏来进行所有补间。我遇到了一种情况,需要使用三次贝塞尔曲线进行一些自定义缓动。 Green
我是一名优秀的程序员,十分优秀!