V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
guotie
V2EX  ›  JavaScript

TypeScript !!!

  •  
  •   guotie · 2012-10-02 21:54:17 +08:00 · 9266 次点击
    这是一个创建于 4441 天前的主题,其中的信息可能已经有所发展或是发生改变。
    TypeScript is a language for application-scale JavaScript development.
    TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
    Any browser. Any host. Any OS. Open Source.

    from microsoft.

    http://www.typescriptlang.org/

    有人关注吗?
    44 条回复    1970-01-01 08:00:00 +08:00
    kenshin
        1
    kenshin  
       2012-10-02 22:06:38 +08:00
    刚刚想发,结果就有了……
    个人认为,这更适合为MS的Win 8做App,值得关注。而且对于JavaScrip程序员来说更容易上手~
    chone
        2
    chone  
       2012-10-02 22:12:22 +08:00
    觉得和google的dart差不多,不过我更喜欢dart,那个提供的很多特性就是特别的贴近需求的。
    j1anb1n
        3
    j1anb1n  
       2012-10-03 02:27:19 +08:00
    强类型语言会限制人类的想象力!
    hxgdzyuyi
        4
    hxgdzyuyi  
       2012-10-03 09:41:18 +08:00
    @j1anb1n 难道不是Visual Studio 限制人类想象力么~
    j1anb1n
        5
    j1anb1n  
       2012-10-03 13:26:11 +08:00
    @hxgdzyuyi 那会让人丧失想象力!
    clowwindy
        6
    clowwindy  
       2012-10-03 14:50:37 +08:00   ❤️ 1
    OLE, ActiveX, COM+, DNA, .Net, Silverlight, TypeScript.

    微软的承诺从来没有兑现。
    imcotton
        7
    imcotton  
       2012-10-03 17:33:41 +08:00
    仅从语法角度讲,TypeScript 只有 CoffeeScript 的 1/5 甚至更少,但结合了 Visual Studio 的 IDE 环境以后带来的极大便利,则是 text editor 所无法比拟的。

    所以对非 Windows 程序员来说,在其相应的 Eclipse 插件出现之前,基本上只能看个新鲜而已。
    hxgdzyuyi
        8
    hxgdzyuyi  
       2012-10-03 18:55:11 +08:00
    @j1anb1n 你有回福州么
    hxgdzyuyi
        9
    hxgdzyuyi  
       2012-10-03 18:56:07 +08:00
    @clowwindy 再也不能更同意了
    j1anb1n
        10
    j1anb1n  
       2012-10-03 20:24:26 +08:00
    @hxgdzyuyi 等等...让我猜猜你是谁..
    zicjin
        11
    zicjin  
       2012-10-03 21:12:53 +08:00   ❤️ 1
    本来希望微软能包容coffeescript的,可惜。
    hxgdzyuyi
        12
    hxgdzyuyi  
       2012-10-03 21:13:30 +08:00
    hxgdzyuyi
        13
    hxgdzyuyi  
       2012-10-03 21:13:58 +08:00
    @zicjin 可是微软的产品应该也可以使用coffee呀 没有啥矛盾吧
    zicjin
        14
    zicjin  
       2012-10-03 21:14:56 +08:00
    @hxgdzyuyi 没有IDE级别的支持。比如jquery
    j
        15
    j  
       2012-10-03 21:51:46 +08:00
    悲剧是这个: from microsoft
    j1anb1n
        16
    j1anb1n  
       2012-10-03 22:35:24 +08:00
    @hxgdzyuyi 好吧...好基友你好,好基友再见~
    hxgdzyuyi
        17
    hxgdzyuyi  
       2012-10-03 22:48:31 +08:00
    @zicjin 所以我说问题的关键是Visual Studio 。。。
    haohaolee
        18
    haohaolee  
       2012-10-03 23:02:56 +08:00
    @clowwindy 微软脑残粉表示不能完全同意,DNA 算是被.Net代替了,但是OLE ActiveX COM+ 本身都还活得好好的。。。
    arden
        19
    arden  
       2012-10-04 00:37:03 +08:00
    我表示挺看好TypeScript的~
    Narcissu5
        20
    Narcissu5  
       2012-10-04 03:50:20 +08:00
    必须提到的是,这次TypeScript的是在Apche协议下开源的。一开始就在微软以外协议下开源的这应该是第一个。
    haxe
        21
    haxe  
       2012-10-04 11:53:16 +08:00
    ”typed superset of JavaScript“
    个人感觉概括了TypeScript的两大特性:强类型和兼容现有JavaScript(就好比C++与C的关系?)
    CoffeeScript相比之下,1.语法上和js相差太大,2.不是强类型语言,3.最后生成的代码也是一堆难以阅读的东西。我对CoffeeScript不太了解,不知道TypeScript的出现会不会直接宣告着它的死亡?
    最后一点,虽然TypeScript来自微软,但是它是一个开源语言。任何人都可以去fork它。
    N8hanE5me
        22
    N8hanE5me  
       2012-10-04 14:28:47 +08:00
    作为一个JS preprocessor TypeScript做的不错,只是不需要标榜强类型,那是为MS自家的IDE提供便利的手段。和CoffeeScript比较的话我觉得语法上TS更接近于JavaScript,可以说是降低了学习的门槛。

    觉得“来自MS”这件事没什么好多抱怨,TS是开源的,MS也为几个主流的text editor提供了syntax highlighter这样的基本支持,这我觉得也算是个进步了。

    最后是IDE方面,TS本质上只是个JS预处理器,和LESS和CSS的关系类似。它本身并没有像.NET或dart那样引入整套的ecosystem,所以我觉得在熟悉JS的前提下,IDE所能提供的部分功能,比如显示方法使用的介绍等,用处可能并不像其在.NET中那么明显。了解一些TS的语法后,用sublime text 2这样的文本编辑器在大部分时候也不会遇到很大的麻烦。

    所以个人觉得这个语言还是值得去尝试一下的。
    jjx
        23
    jjx  
       2012-10-04 18:46:02 +08:00
    强类型后,tsc能识别并且警告,当然vs 可能是目前(估计也没有第三方会做)唯一提供提示的编辑器

    typescript 应该比CoffeeScript目标要大的多,比方说类型系统,模块,未来的ecmascript6特性等

    我倒是想ms能实现await 关键字,这样就可以废了老赵的那个,呵呵

    我也比较看好这个,适合c#/java程序员,可以在不深入学习javascript下不至于犯很多javascript的错误
    fwee
        24
    fwee  
       2012-10-04 19:39:02 +08:00
    这个比coffee更容易普及,因为学习成本低,容易debug.语法和js很接近。
    kenshin
        25
    kenshin  
       2012-10-04 21:00:18 +08:00
    @haxe
    我觉得拿TS(TypeScript)与CS(CoffeeScript)比较并不恰当,原因:
    - TS显然是为Win 8 App服务;CS是为了简化JS而出生。
    - TS正如M$所说,它是JS的超集;CS本质上还是JS。
    - TS貌似也是生成JS(在外面,无法编译),但看其官网似乎是这样的,那就与CS一样……
    - 有M$及VS的支持
    kenshin
        26
    kenshin  
       2012-10-04 21:11:00 +08:00   ❤️ 1
    @haxe
    晕,手机打字,无意中点击“添加回复”了→_→
    接着说……
    - 有M$和VS的支持在IDE上肯定完胜CS十条街……
    - CS的纠错也没那么难,它算逐行对应。
    - CS的语法(准确叫语法糖衣)与Python/Ruby很接近,所以相对不是那么难懂 :)
    - CS借助node可以写后台,这点很爽,像用Ruby一样 :)

    暂时就想到这么多, 我不是这方面的内行,说的不对,请指正 :D
    haxe
        27
    haxe  
       2012-10-04 21:14:45 +08:00
    @kenshin
    TS不只是为Win8 App服务。任何可以运行JS的地方都可以运行TS。虽然现在只有在VS下面才能拥有代码提示,重构等功能,但这并不意味着只有微软的编辑器才能提供TS语言的支持,其他社区只要愿意都是可以提供TS语言支持的。微软作为老东家,先行提供了一个比较好的开发环境。
    虽然同样是生成JS,但代码TS生成的JS代码跟CS生成的比起来可读性高很多。
    fwee
        28
    fwee  
       2012-10-04 21:46:14 +08:00
    @kenshin 干,点回复点成感谢了。。。
    至少对我这种非js程序员来说,个人认为不会花这么大时间去学coffee,但是ts学习成本就很低了,而且可以很容易的避免一些js的软肋:用静态类型改善debug。加入class等等。所以个人认为ts很有可能会普及
    fwee
        29
    fwee  
       2012-10-04 21:47:21 +08:00
    当然编译后的js代码和源码也差不多,容易对比
    kenshin
        30
    kenshin  
       2012-10-04 22:13:48 +08:00
    @fwee
    没事,我也干过,只不过不是你→_→
    嗯,TS的确比CS上手快的道理,这也是它能更加流行的原因之一。
    我不认为M$只是为了这个原因才弄TS出来,我还是觉得TS的真正用途在Win 8 App。M$的阴谋、阳谋也不是一天两天了……
    我也不是JS程序员,看CS大概几个小时基本上就能上手(前提是有编程经验……),同时,与TS理念一样,CS也会避免犯错的。

    @haxe
    嗯,Win 8 App的观点表述不准确,主要是手机打字实在是不爽……
    IDE的支持还要看社区对其的热情度。
    可读性由于暂时还未测试,无法评判。
    fwee
        31
    fwee  
       2012-10-04 22:30:56 +08:00
    @kenshin 这个和win8 app有什么关系?开源的你可以用在任何地方。如果你想也可以用coffee开发win8。ide又不是必须的
    N8hanE5me
        32
    N8hanE5me  
       2012-10-04 23:24:06 +08:00
    觉得对一个语言的看法还是应该从语言本身出发,而不要因为它是出自某个公司就产生偏见。MS在TS语言工具支持上的确把VS做到最好,并可能希望借此争取到更多VS的用户,但是这个工具并不是必须的。相信大多数JS开发人员早就习惯了用text editor写代码了。

    至于说TS是为了Win8做的,个人觉得这个看法比较牵强。到底它会被编译成JS,可以在所有浏览器里运行。只要TS的宗旨不变,那它应该会在很长一段时间里都能在各个平台上运行。
    zhouquanbest
        33
    zhouquanbest  
       2012-10-06 01:44:18 +08:00
    微软开发东西有一个原则:
    某某很NB 尽然不是我们开发的
    Mars
        34
    Mars  
       2012-10-06 11:54:58 +08:00
    会延伸出类似jQuery的库吗?如果有,会不会叫tQuery?
    chaojie
        35
    chaojie  
       2012-10-06 12:18:54 +08:00
    @Mars 本来想说不会的,想想应该还是会。把jQuery封装成tQuery的一个class当不是难事
    sharpblade
        36
    sharpblade  
       2012-10-06 15:20:28 +08:00
    我觉得是习惯强类型语言的Anders实在很不爽JS的白痴类型系统之后练练手罢了。
    还是看好TypeScript,因为不会被绑在微软的产品上,最终生成JS是自由的
    vivianalive
        37
    vivianalive  
       2012-10-06 21:02:18 +08:00
    @hxgdzyuyi 这句话用来形容Dreamweaver也不错.
    bombless
        38
    bombless  
       2012-10-07 21:20:57 +08:00
    其实我觉得 CoffeeScript 转出来的 js 挺好读的……
    haohaolee
        39
    haohaolee  
       2012-11-05 13:56:39 +08:00
    今天看了 build 2012 Anders Hejlsberg 关于 Typescript 的演讲,先不论是否会成功会普及,至少很有意义的尝试,有几点感触:
    1. static type 对大规模程序有重要的作用,JavaScript 也算是魔幻语言了,小规模折腾折腾没事儿,一旦代码量上去了,维护就成问题了。虽然一种语言编译成另一种语言难免有冗余,但是可维护性好多了
    2. CoffeeScript 还有 Dart 神马的都尝试改造 JavaScript 开发体验,说明 JavaScript 确实有很多问题
    3. 工具很重要,不管是不是需要 IDE,问题不在于 IDE,在于更好的工具。有了static typing, metadata 以及其它支持,编译器,IDE,调试器,静态分析工具都可以派上用处。演讲中有个例子在几万行代码中判断两个同名属性是否真的是同一属性,用工具立马就看出来了。
    4. 类似解释性的脚本语言,包括CSS,JavaScript,HTML,也许源码和最终生成的执行代码分离是个趋势,用可维护的方式coding,然后通过工具链生成产品代码,有很多好处

    http://channel9.msdn.com/Events/Build/2012/3-012
    haohaolee
        40
    haohaolee  
       2012-11-05 14:00:10 +08:00
    @j1anb1n 所以这里倒不是strong type的问题,而是static type的好处。Typescript是JavaScript的超集,其实并不阻止你创造各种 Dark Art
    guotie
        41
    guotie  
    OP
       2012-11-05 14:44:23 +08:00
    @haohaolee

    windows 8对js支持的力度超乎想象啊!!!
    haohaolee
        42
    haohaolee  
       2012-11-05 15:55:21 +08:00
    @guotie 是的,js几乎可以调用WinRT的所有功能
    venngomez
        43
    venngomez  
       2012-11-05 16:09:24 +08:00
    个人的经验:用Java这种静态语言觉得很累,用javascript/coffeescript之类的动态语言,觉得非常轻松,灵活,然后休息一个月,再上那两个项目,java那个很快重新上手,动态那个却觉得陌生,要再找回那种感觉,不知道别的码农有这种感觉?看到typescript觉得可能会很好的弥补这两者的距离。不过也觉得为什么要再增加js的复杂,动态就是要再灵活点,如从这角度来看,cs是个很好的选择。
    hxgdzyuyi
        44
    hxgdzyuyi  
       2012-11-17 22:55:42 +08:00
    @vivianalive 同意。dw是一个工具改变一个产业的典范。不过已经是过去时了~ 历史总是在前进的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2791 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:44 · PVG 13:44 · LAX 21:44 · JFK 00:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.