在不了解 TypeScript 的情况下使用 cordova-plugin-playlist

Posted

技术标签:

【中文标题】在不了解 TypeScript 的情况下使用 cordova-plugin-playlist【英文标题】:Using cordova-plugin-playlist without knowledge of TypeScript 【发布时间】:2018-11-08 20:12:26 【问题描述】:

几年来我一直在使用 Cordova 构建应用程序,但不知何故直到现在我才遇到过 TypeScript。我目前处于需要使用 cordova-plugin-playlist 的情况,但没有文档,示例文件是用 TypeScript 编写的 Angular5/Ionic 实现。

是否可以像我通常那样使用纯 JS 而不使用 TypeScript 来实现这个插件?例如,cordova-plugin-media 插件公开了一个名为 Media 的对象类型,我可以在我的项目 JS 文件中实例化它。我可以以类似的方式与 cordova-plugin-playlist 交互吗?

对于这个可能很宽泛的问题,我深表歉意。我只是不确定如何开始攻击这个。感谢您的收听!

【问题讨论】:

【参考方案1】:

欢迎来到 Stack Overflow!

是的,这确实是可能的。您可以使用 declare 关键字或使用 .d.ts(声明)文件来告诉 IDE 有关特定类、变量等以及它们的外观,而不是 JS 文件。

目前只有在项目根目录中有 tsconfig.json 文件并且您使用的是 Visual Studio Code(包括 Project Salsa)时,才可以使用纯 javascript

https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html

【讨论】:

谢谢!你提到编译。我应该提到我没有使用任何类型的编译器(除了使用 Cordova 构建应用程序)。 Cordova 会自动执行您所说的编译吗?我的工作流程基本上是创建 HTML、CSS 和 JS 文件,然后构建 Cordova 应用程序,Cordova 将我的 HTML、CSS 和 JS 文件直接打包到应用程序中,以显示在内置的 Web 浏览器上。我将其视为使用应用程序包装器制作网站。我需要额外的工具来编译你描述的 TypeScript 吗? 如果你使用 Visual Studio Code,它的 Project Salsa 将使它能够读取打字文件,即使你使用的是纯 JavaScript。只要项目根目录中存在tsconfig.json 文件并且输入文件在项目中的某个位置,它就可以工作。【参考方案2】:

最简单的方法是使用 npm 安装 typescript 编译器,然后将示例编译成 Javascript。

IDK 声明文件应该如何提供帮助。我知道它们有用的唯一方法是提供一个带有普通 Javascript 代码类型的接口。 嗯,我仍然不想将我的项目锁定到单个 IDE。

你可能知道 Typescript 被编译成 Javascript 来运行它。最后,typescript 所做的只是因为打字系统而降低开发错误的可能性,并提供一些更新的 Javascript 功能以编译为旧的 JavaScript 代码。

Typescript 的所有 Javascript 代码都是有效的 Typescript 代码。因此,当您将示例作为 Javascript 时,您可以像这样使用插件。

只需使用节点包管理器安装 Typescript,最好是全局安装,然后使用终端使用 tsc input.ts output.js 将 typescript 示例编译为 Javascript。

您可能必须先将 tsc 添加到系统的 PATH 变量中,或者仅引用 tsc(打字稿编译器)可执行文件。

顺便说一句,你可以在插件的代码中的www文件夹中看到编译好的Javascript代码。老实说,typescript 并不神奇,如果你只是忽略类型(通常用 : 表示)它也是有效的 Javascript 代码,尽管它可能使用 ES6、ES7(较新的 Javascript 版本)等的一些特性。

【讨论】:

以上是关于在不了解 TypeScript 的情况下使用 cordova-plugin-playlist的主要内容,如果未能解决你的问题,请参考以下文章

如何在不编译为 JS 的情况下使用用 TypeScript 编写的自定义 tslint 规则和 vscode-tslint?

无法在不提供文件扩展名的情况下导入 TypeScript 模块

Deno 如何在不以“watch”模式运行 TypeScript 编译器的情况下快速启动

TypeScript:我可以在不编写 index.ts 文件的情况下导入文件夹吗?

在 TypeScript 中声明动态添加的类属性

在 Typescript 中访问具有动态键名的状态 [重复]