typescript到底有没有必要??

TS 太香了。

怎么说呢, 我认为写代码bug少的人喜欢js, bug多的人或者新手喜欢ts, 大佬当我没说。
其实喜欢写js的话 ts 完全可以当js写, 就creaor引用对象的写法加一下类型呗。
还有一种最讨人厌的 , 自身实力不行 天天说js垃圾。 结果用ts还是bug一堆

1赞

你说得让我不得不赞你

3.0都用TS全部重构了,你还在问有没有必要

1赞

VSCode都是由TypeScript写的,何必还要守着js不放呢,外面的开发团队基本是以TS开发为主,你要是在公司和别人一起开发项目的的话,基本就无法和其它人交流了。

1赞

如果历史包袱重,而且时间有限,建议可以折中使用jsdoc等方式

typescript的优势在于类型提示

  1. 减轻记忆和心智负担(友好的 类型提示)
  2. 重构维护更加方便和稳健
  3. 多人协作的沟通成本

但也有缺点

  1. 要遵循类型规范,有点束手束脚(可以any的)

关于类型提示有两个阶级

  1. 基础类型提示
  2. 高阶类型编程带来的智能类型提示(可以参考我的开源项目: EasyGameFramework持续更新贴

好家伙,硬生生把js写得比java。c#还通俗易懂,美观大方,高效维护,,,,

我们项目原本是使用js开发的,但是新项目我选择的ts开发,原因是使用js开发前期特爽,但是随着业务的复杂度,代码量的增加,项目从小型项目到中型项目到大型项目的转变,js的弊端就显现出来了,多人维护困难。js适合中小型项目,ts更适用于中大型项目多人协作开发。

个人感觉,写ts时可以写五六百行代码再调试还有可能一次过,写js时不敢这么干,搞不好就被一个错别字坑了

我也觉得没必要,甚至我觉得ts的官方也在误导一般人对于超集的概念,严格来说ts并不是一门语言,而是一个插件类的东西,可以理解为ts=js+type,本质上是js,最终必须要以js的代码存在,才能被浏览器或者其他环境认识。一个人如果同时写ts和js的代码,那就说明他本身就已经能驾驭两种语言了,你这个时候要求他用C# c++等其他语言写代码,改写的成本相对较低。但是对于新手而言肯定是js更容易上手,我们也经常能看到很多人的ts代码写的风格依然是js的风格,可能是他水平没到或者别的原因,但是究其根本而言,还是在于ts的上手难度问题。
我也不好说ts的严格类型是好是坏,我只是觉得既然你写一个变量需要考虑类型的时候就说明你已经明确的知道这个变量是什么类型,那还有必要去加强类型吗?我虽然没怎么写过ts代码,也就是从大佬的口中得知ts的信息,有什么说的不对的地方,请不要盲从。
ps:再补充一个原因:因为微软除了windows算是真的成功产品,其他的产品都不怎么样,所以我很有理由怀疑,ts最终可能也会倒台的,然后就变成无人问津的东西。我记得大概是8月份左右看的全球语言使用分布,js还有4%的份额,ts才2%。不知道现在如何了。
人是一种社交动物,团队合作其实就是在约束自我,把自己放在低水平以磨合跟同事之间的差距。反过来也可以说是强制把水平低的人拉到上一个层次。写大型项目可能真的是ts方便,但是能用ccc开发的,基本上都是中小型项目居多,那么js的优势就很明显了。
而且吧,我打开一个大型项目文件夹,ccc编辑器就只能不断的失去响应了,那么语言写得再快还不是要等编辑器反应过来才行??

是什么让你认为微软只有windows是成功产品的????????

习惯问题,经常用js的人就不习惯用TS,经常用ts的人也不习惯用js了。
不过接受新事物,是程序员的传统美德,而且ts也是业内公认的比js好使,毕竟js有的它的支持。

和习惯无关 ts还是使用js的语法啊 只是多了类型 面向对象等新特性 没有接手过人家的js项目和协作开发 根本就不懂类型的重要性 我一路走来都是js 然后是ts 感觉切入真的很舒服 还是喜欢有类型的 不说其他 就说一个提示 ts让我省了很多时间 用js没提示 话说不蛋疼吗? /:

我觉得ts上手难度和js并无差别,不如说js的一些奇怪用法更容易误导新人。
其次ts被称为js的超集是因为ts是基于js做的,比js多一些东西,js有的ts都有。
然后ts并非不能用js的方式来写,你把所有的变量都定义为any,就和js一样了,ts有类型限制的一大好处就是能在代码编写阶段就发现很多问题,而不是等到运行报错才知道。
至于你说的ts最终会倒台,那取决于js,js倒了ts也就倒了。
最后那个大型项目,加载慢是编辑器优化问题,这个可以通过资源分包来解决。

那你倒是说说看微软还有多少成功的产品吧,或者说相对于windows而言,还有什么东西是能长久稳定的??虽然windows也已经迭代很多次了。

我一个坚定的js使用者现在都开始看ts教程了。。为了钱,忍了!哈哈哈哈哈

这个资源分包到底怎么做啊?我之前的想法是,找到某个预制件及其索引的资源分离出去,主项目里面确保自己绝对不打开,但是感觉不好实现啊,万一别的预制件还在主项目里面但是也用到了这个资源,但是这个资源已经被移出去了,那就悲剧了。
js ts看开发者自己喜欢就好了,不应该强制,事实上单单说写小项目,我看着很多就是js的写法,也没必要非要用ts来写,看个人喜好了。

比如说,开另一个项目制作预制体,然后放到大项目中,然后资源放到cdn。
如果是 2.4 以后的版本的话,可以直接用 Bundle 来管理资源。还是一样的思路,另外开一个项目来制作预制体啥的,代码也可以放里面。然后打包生成 Bundle 主项目直接远程加载 Bundle 就ok了

这里确实如你所说,3d和3.0版本直接用ts,可能是为了规范?不过若是团队协作,或者他人维护,还是ts更好一点

我也是认为团队合作可能是ts更好一点的,个人还是js更方便一点。我感觉我是不太可能做3d项目了,所以就懒得专门去学ts了。