此提案将在本月(2022年3月)底的TC39会议上讨论,显然,这个提案会是会议的焦点之一,提案champion预留了90分钟时间。这是极为罕见的,我不记得之前有任何一个topic预留了那么长时间。【PS. 本次会议的焦点议题非常多,还包括命运多舛的Decorator提案要进Stage 3,还有模式匹配提案要进Stage 2,分别都预留了1个小时的时间。我其实也有提案打算更新。】
关于JS加入类型系统,我2年半之前回答过,我当时的态度是比较悲观的。
总之,收益不确定,风险倒很高,TS团队也不支持。所以我现在对某种形式的类型系统进入ES标准持悲观态度,除非一些重要条件发生显著的变化。
那么现在我提到的重要条件发生什么变化了吗?客观条件其实并没有变化,但有一项主观条件发生了重大变化,就是TS团队的态度。这次提案是TS团队的人提的!TS团队为什么态度发生了转变?按照大家喜闻乐见的一盘大棋论,是不是微软(不仅TS团队,还有VSCode团队甚至Edge团队等)有什么进一步的想法和大动作?我这里就不瞎猜了,等着看看吧。
抛开微软不谈,我们仅从TC39的「政治」来说,这事情TS团队支持,那主要的可能障碍就来到了引擎厂商一侧。按照我对引擎厂商代表的一贯偏好的认知来说,这个提案被接受的概率是不大的,这从之前Decorator提案几度被引擎厂商枪毙就可以领会到。正好这次新版的Decorator提案要进Stage 3,如果成功(概率应该比较高),意味着引擎厂商在一些方面做了一定的让步(如删掉@init:
所引入的少量固定性能成本)。我感觉从维持「政治」立场来说,引擎厂商是不愿意释放过多的「让步」信号,所以在同一次会议上允许Types提案进入Stage 1的概率就更小了。那么如果真的进入,【<划掉>从阴谋论角度来考虑,那就是有啥py交易……</划掉>】那就是引擎厂商突然转性了。
关于提案本身进一步的考虑,我会在本次的JSCIG会议之后再做补充,各位可追更(擦,桌面版到现在还没有开启追更的功能?知乎 )。
最后,2018年我在这个回答 TypeScript 的命运会不会和 CoffeeScript 一样 ? 下做过预测性评论,在去年我已经为预言失败做好托词(「还好只赌了5毛」),没想到现在柳暗花明又一村,万一真的进入Stage 1,我就大预言家了。