首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有JavaScript库可以给Hyperapp增加类型安全?

有没有JavaScript库可以给Hyperapp增加类型安全?
EN

Stack Overflow用户
提问于 2018-03-02 06:14:45
回答 3查看 468关注 0票数 3

我正在考虑在我的下一个项目中使用Hyperapp,但我注意到虽然它类似于Elm,但它不提供类型安全保证(这是Elm最好的特性之一)。是否有JavaScript库的组合(可能与Hyperapp一起使用)可以为您提供Elm所具有的类型安全性?

EN

回答 3

Stack Overflow用户

发布于 2018-03-02 08:58:26

从本质上讲,构建软件就是使用具有不同权衡的抽象。Hyperapp以牺牲可靠性为代价,权衡了熟悉的语法,因为Hyperapp使用的是默认情况下可变的JavaScript。对于可变变量,您无法做出保证,因为根据定义,它是不确定的。但是,您可以测试代码以使其更具确定性。但是,这是另一种权衡。

长话短说,如果你想要类型安全,你不能只依赖JavaScript。你可以像Purescript,Fable和Elm那样转译成JavaScript。如果你想要更多的可靠性,我建议你花时间去学习这些语言中的一种。

祝你好运!

票数 4
EN

Stack Overflow用户

发布于 2018-03-02 15:43:01

Hyperapp提供了许多以函数式风格构建应用程序所需的基本工具,同时保留在JavaScript生态系统中,并且不需要构建步骤即可开始。与Elm和Reason等更严格的解决方案相比,这是一个明显较低的进入门槛。

如果你考虑一下从命令式到功能式风格的刻度,比如一个刻度盘,Hyperapp就会把刻度盘转到功能刻度盘。这是由你作为用户决定如何旋转刻度盘。如果您必须集成一个恶意的API,该API需要偷偷摸摸的DOM操作,那么您可以使用转义孵化器,使您脱离虚拟DOM层,并访问较低级别的DOM。如果取而代之的是,由于等受Elm启发的工具,您能够使用完全纯函数来编写您的应用程序,那么您将以很少的成本获得许多相同的好处。

最重要的是-我认为不要把类型安全和正确性混为一谈是很重要的。来自Clojure世界的Rich Hickey有一个图表,显示了我个人同意的编程问题:

请注意,静态类型是此层次结构中编程中最不重要的问题的解决方案。如果你想听希基关于类型的更多细节,我鼓励你看看他的Clojure/Conj 2017 keynote address

票数 3
EN

Stack Overflow用户

发布于 2018-04-01 00:45:17

我将Hyperapp与TypeScript一起使用,到目前为止,它工作得很好。使用tsconfig选项

代码语言:javascript
复制
"jsx": "react",
"jsxFactory": "h",

甚至可以使用JSX。

TypeScript启用ES6+功能并添加键入功能。它还可以转换为可读的JavaScript代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49059542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档