1. Python 的 typehints 在涉及中参考了 ts 已有的成功设计,现在已经广泛普及 2. 在 typehints 普及后,Flask 维护者曾抱怨 python 曾经的无类型时代是个很好的时代,它符合动态类型语言设计的简化繁杂操作的初衷。 3. 个人感觉总体上还是应该支持类型标注的,相当于一种内嵌式的结构化注释,在关键节点添加类型极大增加维护效率。 4. 但是如果严格遵照编译器命令操作动态类型语言,比如为了让编译器通过形参而特意加了个泛型之类的。。。无疑是极大增加中小项目的复杂度了,且意义不大。
本质上来说,这是看你是喜欢静态类型语言还是动态类型语言的问题。 如果你喜欢静态语言,那你是巴不得把 JS 和 Python 都写成静态语言的样子。 反过来如果你喜欢动态语言,那你巴不得把 C++和 Java 都写成动态语言的样子。 我个人项目是写 Ruby 的,公司是写 Java 的。公司的项目因为很多开发包袱导致大家不愿意去写准确详细的测试,虽然代码都是静态类型的,依然 bug 频发。自己的项目虽然是动态类型的,但是 Ruby 写测试写起来更简单,覆盖可以更好,更方便我做 BDD ,写完的代码在足量的测试覆盖下 bug 反而更少。归根结底是静态还是动态类型并不是决定代码质量的根本因素。