推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
Cbdy

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

  •  
  •   Cbdy · Jul 30, 2017 · 8126 views
    This topic created in 3225 days ago, the information mentioned may be changed or developed.
    微软官方的说法见 www.typescriptlang.org

    然后用 es6 写个类:

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

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

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

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

    上微软车的同学你们咋看?
    27 replies    2017-07-31 22:44:55 +08:00
    williamx
        1
    williamx  
       Jul 30, 2017
    不要纠结宣传。
    按 ts 的方法写。
    imswing
        2
    imswing  
       Jul 30, 2017
    一步很大的棋
    KeepPro
        3
    KeepPro  
       Jul 30, 2017 via Android
    你用 ts 编译器编译 es6 代码,编译不过去,然后提交了一个编译器的 bug ?没睡醒?看你上面举的例子,应该是找不到 this.a 的定义。
    mason961125
        4
    mason961125  
       Jul 30, 2017
    缺铜币直接说。
    wwqgtxx
        5
    wwqgtxx  
       Jul 30, 2017 via iPhone
    ms 也没说 ts 是 js 的 es6 的超集呀
    hiluluke
        6
    hiluluke  
       Jul 30, 2017
    http://www.scala-js.org/ 又一个超集。。。
    hiluluke
        7
    hiluluke  
       Jul 30, 2017
    https://github.com/facebook/flow 再来一个。。。
    zhuangzhuang1988
        8
    zhuangzhuang1988  
       Jul 30, 2017
    一看就是钓鱼得。
    hjc4869
        9
    hjc4869  
       Jul 30, 2017 via Android
    超集指的是功能,而不是说能过 ts 编译器检查的文件集合是 js 的超集。
    sfqtsh
        10
    sfqtsh  
       Jul 30, 2017 via Android
    无语,你学过 C++吗~~~
    SuperMild
        11
    SuperMild  
       Jul 30, 2017
    @hiluluke 你发的两个没有自称是 JS 的超集。
    hiluluke
        12
    hiluluke  
       Jul 30, 2017
    @SuperMild 😆
    SuperMild
        13
    SuperMild  
       Jul 30, 2017
    @hjc4869 一个语言自称是另一个语言的超集,应该是语法上的超集才对,功能上的超集这个说法很奇怪,什么是功能?对 html 和 css 的控制?这方面 TS 能做到的,JS 都能做到,谈不上“超”,结果 TS 超过 JS 的也只有语法上的功能了。
    flowfire
        14
    flowfire  
       Jul 30, 2017
    会报错然而依然能编译成功………
    我这种只看了几天文档的人都知道你这个写法哪里出问题了……
    hst001
        15
    hst001  
       Jul 30, 2017
    TS 是强类型,js 是弱类型。虽然有些情况 TS 可以推断类型,但是也仅限于已定义的类型。所以语法上,TS 并不是 js 的超集。你的代码就是语法上的问题。
    anubiskong
        16
    anubiskong  
       Jul 30, 2017
    哈哈哈哈哈,看评论能笑半天
    Quaintjade
        17
    Quaintjade  
       Jul 30, 2017 via Android
    官方宣传就不要太当真了。大致意思就是加了个(伪)强类型,然而最后还是要翻译成 js 的。
    本质上来说都是图灵完备的语言嘛。。。
    hjc4869
        18
    hjc4869  
       Jul 30, 2017
    @SuperMild feature 指的是 compiler/language service/toolchain 提供的 feature,比如更准确的代码提示,静态检查,async/await 等等。而实际上这些 feature 其中就有专门帮你报错用的,比如静态类型检查。
    顺带一提这个 feature 是可以关掉(或者说无视)的
    Cbdy
        19
    Cbdy  
    OP
       Jul 30, 2017 via Android
    @wwqgtxx es6 是 js 的子集,根据集合包含的偏序关系 es6 是 ts 的子集
    ma63d
        20
    ma63d  
       Jul 30, 2017
    缺铜币直接说。
    用 es6 钓鱼还真能钓到我也是服。
    visonme
        21
    visonme  
       Jul 30, 2017
    概念这么个玩法会不会有点太勉强了
    anyele
        22
    anyele  
       Jul 30, 2017 via Android
    日常钓鱼
    jybox
        23
    jybox  
       Jul 30, 2017
    Cbdy
        24
    Cbdy  
    OP
       Jul 30, 2017 via Android
    @jybox tsc 报 error,不是 warning
    longaiwp
        25
    longaiwp  
       Jul 31, 2017
    什么时候 TS 是 JS 的超集了?
    Revenant
        26
    Revenant  
       Jul 31, 2017 via Android
    @Cbdy es6 是规范,js 是具体的实现,不同内核的浏览器支持的 js 不一定一致,所以两者不能说谁是谁的父子集。
    fengdra
        27
    fengdra  
       Jul 31, 2017 via Android
    TS 报错也能照样输出 JS 文件的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1204 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 17:38 · PVG 01:38 · LAX 10:38 · JFK 13:38
    ♥ Do have faith in what you're doing.