到目前为止,我发现的每个 TypeScript 示例和教程都是关于语言功能、静态类型、Visual Studio 等。我找不到任何内容来告诉我应该如何参考 JavaScript 和 DOM 使用它。
我的理解是你可以使用 TypeScript 来处理 DOM。 但是,我从未见过有人为此使用它。 我有一组 JavaScript IIFE 对象,我想转换它们,但当它们操作 DOM 时,我不确定 TypeScript 在这里扮演什么角色。
由于涉及到操作 DOM,我应该使用 TypeScript 吗? 不可以 I。考虑到我在新的 Web 应用程序项目中使用 TypeScript,我是否应该应该。
我不知道这个答案,什么是 TypeScript,为什么我要用它代替 JavaScript?
编辑:我了解 TypeScript 是什么以及它的用途。 我的问题是为什么我没有看到更多的人将它用于 DOM? 即使可以那样使用,它是否不应该与 DOM 一起使用?
TypeScript 可以用于 JavaScript 可以做的任何事情。它是 JavaScript 加上一层类型信息(通常很快就会采用较新的 JavaScript 功能),然后将其编译为 JavaScript 以供在野外部署和使用。
当使用 TypeScript 操作 DOM 时,您将需要 DOM 的类型信息;请参阅此问题及其答案,了解有关将 DOM 类型信息添加到项目中的更多信息。
Typescript 非常适合 DOM 操作。由于类型的存在,您在开发期间获得了大量的编译器支持,并且避免了许多仅使用 Javascript 难以发现的错误。
这是一个 dom 操作的小例子(看类定义):
这是我制作的 Angular UI 组件库的一部分。你可以看这里:
所以我对这个问题的理解是,人们真的使用 typescript 来进行 DOM 操作吗?答案是肯定的,但不是真的。
在撰写本文时,TypeScript 在 React、Angular 以及其他框架和库中很流行,但这指出了使用 TypeScript 进行 DOM 操作、状态管理、构建步骤和项目的三个缺点。
首先是状态。从数据库中提取状态时,您可以假设数据库内的数据类型不会更改(如果会更改,天哪,为什么?),然后您可以在现代 JS 框架中安全地使用声明式方法从 JS/TS 中控制的状态生成 HTML。
使用 DOM 操作,它更加棘手,是的,你可以控制和查看你的 HTML,以了解你将要拉取的类型,如果你在 TS 代码和 HTML 的设计中保持一定的严格性,你可以避免烦人的问题,并通过更加严格和结构化来改进您的代码。你还应该对本地逻辑进行单元测试,以及端到端,然后我们就可以携手并进了。在实践中,如果您的项目范围很小,并且如果所需的动态功能范围很大,那么处理从 querySelectors 获取状态并在打字稿中实现严格的结构来管理它是乏味的,那么您可能会想要使用框架,这不完全是 DOM 操作。
想象一下,您就像 90% 的 Web 开发人员一样,您被雇用在 WordPress 网站中创建弹出窗口,并且按固定费率付费,您决定使用 TypeScript 而没有框架,您使用以下命令设置直接的构建过程gulp 来转译你的打字稿,一切都很好。 2 个月后,您的客户生气地回来找您,因为他们雇用了一位新开发人员,该开发人员使用与您不同的操作系统,并且无法使用您的构建过程,哎呀!
如果你打算使用构建过程,你可能应该只对真正需要打字稿的大型项目这样做,如果项目真的很大而且很复杂,你可能不会只使用普通打字稿,你可能会使用框架。
您可以使用 typescript 进行 DOM 操作,但您也可以只使用 JSdocs 就到此为止,所以这就是为什么您看不到那么多 typescript 用于 DOM 操作。
我知道这个问题是 7 年前提出的,而且情况有所不同,但我认为上述内容适用于当前的发展情况。