国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

TypeScript不利于高級Javascript程序員的修養

weakish / 1377人閱讀

摘要:本人驗證過一些,得出結論并不是嚴格的超集。而且微軟的東西做廣告的成分較大,最好抱著懷疑的態度。微軟技術從,,,到,,坑害了一代又一代的程序員,真是毀人不倦。所以玩笑的說,程序員珍愛生命,遠離微軟。和不同,它屬于非侵入式編程。

Typescript完全嚴格地兼容js嗎?

Typescript官方說它是Javascript的超集,好多人也是這么理解的。 本人驗證過一些case,得出結論:并不是嚴格的超集。

例一:

contact.js

function contact() {
    this.name = "Jackie Ge"

    return {
        cname: this.name,
        getCname() {
            return this.cname
        }
    }
}

var c = new contact
console.log(c.cname, c.getCname())

如果是contact.ts, 那么tsc編譯的時候出錯:
error TS2350: Only a void function can be called with the "new" keyword.

例二:

function Foo() {

}

Foo.array = [1, 2, 3]
Foo.min = function () {
    return Math.min(...this.array)
}

var obj = {
    array: [3, 6, 9]
}
console.log(Foo.min())
console.log(Foo.min.apply(obj))

tsc的時候報錯:
error TS2339: Property "array" does not exist on type "() => void".
error TS2339: Property "min" does not exist on type "() => void"

我想說的是,最好總是要做一些實地測試, 不要人云亦云。而且微軟的東西做廣告的成分較大,最好抱著懷疑的態度。微軟技術從COM, VB, JScript, 到WPF, SilverLight,坑害了一代又一代的程序員,真是毀人不倦。目前Typescript又有這個架勢。所以玩笑的說,程序員珍愛生命,遠離微軟。

Typescript優缺點分析

主觀的分析TypeScript有其自身的優點:

若類型的靜態類型檢查。 但這多半是給后端java/C#開發寫前端降低門檻, 使之短時間內寫出了所謂的前端代碼。

ts是為了讓新手也能寫出不至于太寒磣的代碼,便于團隊的合作。

但缺點也明顯:

有些第三方的js庫缺失dts,或者dts更新不及時。會導致不能便利的使用它或者調用了過時的方法/函數

但如果已是熟練的前端開發, TypeScript有時候確實是桎梏。它強制你寫一堆繁瑣的接口類型。而且有些js的方式它還不兼容 (看我的上面的例子)

它其實閹割了js的一些技法,(還是看我的例子)。要想修煉高手,須要遠離ts。所謂可遠觀而不可近玩焉。

后記

后來仔細想了一番,我對TS的觀點確實有那么點偏見,估計由于多年受MS毒害之后的反彈吧。所以在此更正一點認識:

如果只做靜態類型檢查, 推薦flow check, facebook出品。和TypeScript不同,它屬于非侵入式編程。而且react和vue本身的源碼都在用。我的理解是,ts開源,但非ES標準。也保不齊以后會加了很多私貨而越來越遠了ES標準。小公司小項目問題不大,但大公司大項目,fb,阿里巴巴等一般不會用ts,而是用標準ES或者自行開發框架。對于長期的大項目,公司的核心項目等,盡量向標準靠攏吧。

不能凡事都依賴智能提示吧,對于自己的項目代碼,總得要有合理的規范,總得要記住里面的重點方法名,變量名吧。而且重要的方法名,變量名,命名好之后,推薦要長期保持,而非朝令夕改,而非總想著之后重構。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/83500.html

相關文章

  • 使用TypeScript開發微信小程序

    摘要:使用開發微信小程序基礎接口核心設計原則之一就是類型檢查,通過使用接口可以進行類型檢查,滿足傳統面向對象思想,利于有效開發,有效避免類型轉換問題。使用開發微信小程序基礎迭代器為每一個對象定義了默認的迭代器。 使用TypeScript開發微信小程序(1)——基礎:數據類型(Type) ?TypeScript 的基本數據類型有boolean、number、string 、array、enum...

    xingpingz 評論0 收藏0
  • ESLint 在中大型團隊應用實踐

    摘要:自動化接入和升級方案通過命令行工具提供一鍵接入升級能力,同時集成到團隊腳手架中,大大降低了工程接入和維護的成本。原始代碼經過解析器的解析,在管道中逐一經過所有規則的檢查,最終檢測出所有不符合規范的代碼,并輸出為報告。 引言 代碼規范是軟件開發領域經久不衰的話題,幾乎所有工程師在開發過程中都會遇到,并或多或少會思考過這一問題。隨著前端應用的大型化和復雜化,越來越多的前端工程師和團隊開始重...

    alogy 評論0 收藏0
  • 2017-07-11 前端日報

    摘要:前端日報精選月份前端資源分享第期打包實戰上大漠窮秋全面解讀核心特性拖放什么是裝飾器應該在什么時候使用裝飾器中文全棧工程師的自我修養濃縮筆記下做工程師不做碼農常用布局簡潔解決方案白底黑字進階試試酷炫的視角技術周刊期知乎專欄實踐當 2017-07-11 前端日報 精選 7月份前端資源分享【第992期】webpack 2 打包實戰(上)大漠窮秋:全面解讀Angular 4.0核心特性HTML...

    _ivan 評論0 收藏0
  • 切圖崽自我修養--[BUILD]構建工具思路梳理

    摘要:前言之前也是從過來的,到現在的中間有些問題沒怎么細想,比如明明是構建工具為什么調試總是要開啟一個服務之類的,現在就來簡單梳理下思路最原始的構建工具無非是這樣改動了某個資源文件,要手動運行構建命令才能重新構建,重新構建的時候構建工具將所有資源 前言 之前也是從grunt/gulp/fis/過來的,到現在的webpack,中間有些問題沒怎么細想,比如明明是構建工具為什么調試總是要開啟一個h...

    wfc_666 評論0 收藏0
  • 切圖崽自我修養--[BUILD]構建工具思路梳理

    摘要:前言之前也是從過來的,到現在的中間有些問題沒怎么細想,比如明明是構建工具為什么調試總是要開啟一個服務之類的,現在就來簡單梳理下思路最原始的構建工具無非是這樣改動了某個資源文件,要手動運行構建命令才能重新構建,重新構建的時候構建工具將所有資源 前言 之前也是從grunt/gulp/fis/過來的,到現在的webpack,中間有些問題沒怎么細想,比如明明是構建工具為什么調試總是要開啟一個h...

    elina 評論0 收藏0

發表評論

0條評論

weakish

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<