随便说说typescript

272 阅读2分钟

忽然觉得typescript + js 这种将类型检查和运行完全分开的做法,也有好处。比如将来上云开发,就不需要本地搭环境,每个人的开发环境都是完全相同的,所以类型检查完全可以交给编辑器去做。至于底层是否没那么安全,不清楚。但是这样的模式是有发展空间的。不需要负责类型的语言,有更多资源和精力去做其他的事情。这正是ts的优势和特色。

看到有说建议不要写any,确实any不能乱用。但是any是有存在的意义的,毕竟tsconfig.json都没有禁用any的配置,最多只有个禁止隐式声明的选项 noImplicitAny,这就是最好的说明。灵活,正是脚本语言js的最大特色。那么,如何在灵活和高可维护性之间,找到最佳实践,就是需要探索的一件事。

一句话形容typescript的开发体验,就是武装到牙齿。其实js天生就是带着超级灵活的语法,因此为了武装js,可想而知ts的花样只能更多。但是,你真的想要消灭any吗?只能说难,当你发现第三方库的类型定义不支持展开语法时,怎么办,当你定义了一个构造函数并给prototype定义了属性和方法,此时又该如何给这个构造函数定义类型呢?当你确定数组中的只有其中一个元素的类型和别的不一样,那么又该如何告知编译器这个类型不会出现两次呢?不用any或者强制推断的话很难解决吧

总之,无论如何,提高开发效率,提高开发舒适度,提高代码可维护性,不让代码乱糟糟的,让代码清晰整洁,强大,高内聚,低耦合,分模块,这几乎就是写代码的至始至终的方向。工具、框架如何使用,其实都是在这一目的之下的概念。