我们向我们敬佩的网页构建者提出了同样的问题:今年你在网站构建方面学到了什么? 以下是他们的答案

我们要感谢我们的❥赞助商Automattic,他们使本网站成为可能。他们制作了许多我们使用的优秀软件产品,例如JetpackWooCommerceWordPress.com

TypeScript 及其相关性

在我们构建网页的广阔世界中,我们有机会讨论各种工具。我们努力用明确的技术方法来填补项目中的每一个空白。我们中的一些人获得了“在桌边就座”的机会,甚至可以参与最微不足道的技术辩论。这种意见市场建立在一种愿望之上,即至少在目前,要达到最佳状态。我们推测工具的使用,以便提高效率,扩展探索范围,或铺设通往可行性的最快路径。

如果你阅读过本网站上的任何内容,你可能已经意识到了“冒名顶替综合征”的概念——一种令人衰弱的反思,即你并不配拥有你所处的职位,或者你认为自己应该知道的知识。那些学会处理冒名顶替综合征的人有陷入(我对自己认识到的)“相关性综合征”的风险——这是冒名顶替综合征的中期职业并发症。当你花费数年时间重复“我应该在这里”的口号,但从未真正接受其前提时,就会发生这种情况。当你试图抵消硬技能的软化,却最终使软技能硬化时,就会发生这种情况。保持相关性当然是一个发表关于工具意见的好理由。


因此,我将随意地靠在这堵砖墙上,将我的墨镜滑到我那无比相关的鼻尖上,然后不以为然地提到,是的,我也学习了TypeScript。一年体验下来,我发现自己非常喜欢它。

我想利用 TypeScript 的目的来阐明一个单独的观点,所以如果你愿意,请耐心听我讲完这个快速示例。

TypeScript 除了其他功能外,还可以强制执行你传递的事物的类型。例如,这个 JavaScript 函数可以将两个数字相乘

const product = (x, y) => x * y;

想象一下,你违反了规则,在没有数字参数的情况下调用此函数,例如,product('A', 'B')。你可以通过多种方式验证此函数以捕获此场景,但你的验证仅在执行时发生——脚本运行时,通常在浏览器中。你无法真正调试它,直到这些事件发生。TypeScript 可以做的是在你执行之前——在你编写代码时——告诉你你违反了规则。为此,你需要声明你正在使用的类型

const product = (x: number, y: number) => x * y;

在这里,我们为这两个参数指定了类型,表示变量xy都是number。现在,如果你使用错误类型的参数来使用此函数,你的应用程序脚本将响亮地构建失败。因为你的脚本必须在构建之前工作,所以你永远不必担心这类错误在实际环境中发生。但是,要实现这一点需要付出很多努力。你必须在所有地方定义你的类型。

😍

你可能会发现编写 TypeScript 类型就像整理书架一样。你设定了一些规则,遵循这些规则可以实现最佳的组织,并且易于参考。

🙅‍♂️

或者,你可能会发现编写 TypeScript 类型就像强迫你的孩子参加课外活动一样。它非常严格且不近人情,不允许你的代码弄清楚它是什么以及要去哪里!你通过强加你的意志来阻碍它的发展!

我想,一个井井有条的书架和一个独立的精神的独创性一样具有价值,并且两者都有很多东西可以学习。


最后,让我们再次考虑一下相关性

你可能会感到压力,要求在执行代码之前就知道自己在做什么——在代码执行之前自己指定类型。你可能会感到压力,要求在公开发布之前说明你所有的失败和教训。朋友们,为了保持你的类型,你承担了巨大的努力。这是一种压力和僵化,有时对我们的软件施加这种压力和僵化是很好的,但对你自己或他人来说是不公平的。

我们都有我们的"1" + "1" = "11"时刻。它们是相关的,并且完全是人类的,如果不是天才的一种形式的话。拥抱它们。严格防止它们是不可扩展的。

我感觉在这一刻,我可能学会了如何学习TypeScript,并希望松散地抓住任何使我成为我的类型。