微软号称 ts 是 js 的超集,随便一个 js 代码却编译报错

2017-07-30 13:23:20 +08:00
 Cbdy
微软官方的说法见 www.typescriptlang.org

然后用 es6 写个类:

class A { constructor() { this.a = {} } }

编译报错。。我调了一会编译参数,还是无解,翻了一下官方的 issue,一年前就有人反馈了。。有种上当的感觉

看来这个所谓的“超集”是“ c++是 c 的超集”这种超集啊,毕竟两种语言

另外我发现 js 的 private fields 提案和 ts 的不一样( js 用#)不知道 ts 团队会咋办

上微软车的同学你们咋看?
7522 次点击
所在节点    JavaScript
27 条回复
williamx
2017-07-30 13:31:53 +08:00
不要纠结宣传。
按 ts 的方法写。
imswing
2017-07-30 13:34:54 +08:00
一步很大的棋
KeepPro
2017-07-30 13:35:27 +08:00
你用 ts 编译器编译 es6 代码,编译不过去,然后提交了一个编译器的 bug ?没睡醒?看你上面举的例子,应该是找不到 this.a 的定义。
mason961125
2017-07-30 13:40:02 +08:00
缺铜币直接说。
wwqgtxx
2017-07-30 13:40:07 +08:00
ms 也没说 ts 是 js 的 es6 的超集呀
hiluluke
2017-07-30 13:40:36 +08:00
http://www.scala-js.org/ 又一个超集。。。
hiluluke
2017-07-30 13:41:09 +08:00
https://github.com/facebook/flow 再来一个。。。
zhuangzhuang1988
2017-07-30 13:58:04 +08:00
一看就是钓鱼得。
hjc4869
2017-07-30 15:01:13 +08:00
超集指的是功能,而不是说能过 ts 编译器检查的文件集合是 js 的超集。
sfqtsh
2017-07-30 15:08:39 +08:00
无语,你学过 C++吗~~~
SuperMild
2017-07-30 15:14:09 +08:00
@hiluluke 你发的两个没有自称是 JS 的超集。
hiluluke
2017-07-30 15:17:10 +08:00
@SuperMild 😆
SuperMild
2017-07-30 15:19:32 +08:00
@hjc4869 一个语言自称是另一个语言的超集,应该是语法上的超集才对,功能上的超集这个说法很奇怪,什么是功能?对 html 和 css 的控制?这方面 TS 能做到的,JS 都能做到,谈不上“超”,结果 TS 超过 JS 的也只有语法上的功能了。
flowfire
2017-07-30 15:21:56 +08:00
会报错然而依然能编译成功………
我这种只看了几天文档的人都知道你这个写法哪里出问题了……
hst001
2017-07-30 15:26:32 +08:00
TS 是强类型,js 是弱类型。虽然有些情况 TS 可以推断类型,但是也仅限于已定义的类型。所以语法上,TS 并不是 js 的超集。你的代码就是语法上的问题。
anubiskong
2017-07-30 15:34:44 +08:00
哈哈哈哈哈,看评论能笑半天
Quaintjade
2017-07-30 15:46:18 +08:00
官方宣传就不要太当真了。大致意思就是加了个(伪)强类型,然而最后还是要翻译成 js 的。
本质上来说都是图灵完备的语言嘛。。。
hjc4869
2017-07-30 16:00:47 +08:00
@SuperMild feature 指的是 compiler/language service/toolchain 提供的 feature,比如更准确的代码提示,静态检查,async/await 等等。而实际上这些 feature 其中就有专门帮你报错用的,比如静态类型检查。
顺带一提这个 feature 是可以关掉(或者说无视)的
Cbdy
2017-07-30 16:10:59 +08:00
@wwqgtxx es6 是 js 的子集,根据集合包含的偏序关系 es6 是 ts 的子集
ma63d
2017-07-30 17:48:03 +08:00
缺铜币直接说。
用 es6 钓鱼还真能钓到我也是服。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/379003

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX