Browse by Tags

TypeScript的this偵錯陷阱
接獲同事報案追查TypeScript問題,二人一起陷入迷霧近20分鐘才恍然大悟… 有段TypeScript程式自訂類別,在類別方法用this.PropName="..."修改自身屬性值(註:類似需求我習慣用 self大法 ,寫成self.PropName="…"),偵錯時用瀏覽器F12開發者工具下指令檢查,卻發現this.PropName沒有被正確設定,我建議在程式碼加入console.log(this.PropName)交叉檢查,跑出更詭異的狀況,如下圖...
Posted 23 April 2016 09:28 AMJeffrey | with no comments 5,872
Filed under:
快速將C#型別轉成TypeScript介面定義
使用TypeScript處理AJAX呼叫時,常需要在前端定義與C#物件屬性一致的TypeScript型別,以便將後端傳來的JSON資料還原成強型別物件。針對較正式的資料模型,我會用 CodeGen方式 同步C#與TypeScript端的型別定義(順便處理多語系問題)。但蠻多時候處理對象只是零散的小型別,不必殺雞用牛刀,針對這類需求,推薦一個好用工具- TypeLITE 。 在NuGet查關鍵字"typelite",很快就可找到TypeLite套件。 安裝後,專案會加入TypeLite...
Posted 15 January 2016 05:48 AMJeffrey | with no comments 6,927
Filed under:
Protractor、TypeScript與Chai
搞定用TypeScript寫Protractor測試,陸續參考一些範例,發現蠻多人偏好使用 Chai 程式庫。原本Protractor預設的寫法expect(foo).toEqual(5),改用Chai之後變成: expect(foo).to.be.a('string'); expect(foo).to.equal('bar'); expect(foo).to.have.length(3); expect(tea).to.have.property('flavors'...
Posted 24 May 2015 11:18 AMJeffrey | with no comments 4,786
Filed under: ,
使用TypeScript撰寫Protractor測試
裝好Protractor ,就可以動手寫測試了。Protractor預設使用Jasmine,之前寫Angular單元測試時 玩過 ,語法並不陌生,但是用慣神兵利器,遇上超過一百行的JavaScript,少了Visual Studio + TypeScript拎杯根本活不下去,啊啊啊啊~(顯示為鎚子被沒收的雷神索爾在地上打滾) 因此,首要任務得找出使用TypeScript撰寫Protractor測試的方法。我選擇用VS2013開啟一個空白Web Apllication專案,不啟用MVC、Web API也不啟用WebForm...
Posted 23 May 2015 08:35 AMJeffrey | with no comments 6,088
jQuery TypeScript定義檔2.2.3與KendoUI定義檔不相容
使用NuGet更新全部套件後,jQuery定義檔出現TypeScript編譯錯誤: Error    545    Interface 'JQueryPromise<T>' incorrectly extends interface 'JQueryGenericPromise<T>'.   Types of property 'then' are incompatible...
Posted 28 March 2015 08:51 AMJeffrey | with no comments 3,761
Filed under:
NG筆記25-如何將Directive Isolated Scope宣告為TypeScript強型別?
NG範例23-使用Directive建立自訂網頁元素 介紹過好用的自訂元素。除了資料互動不高的單純DOM操作Directive,一般我們都會另建獨立Scope(Isolated Scope)避免彼此干擾。而Isolated Scope宣告時需指定{ propA: "=", propB: "@" }形式的scope物件,供NG參照建立參數對應,因此不像Controller、Service可以寫成獨立類別,而這衍生的副作用則是-scope參數在link函式裡被視為任意型別...
【茶包射手日記】TypeScript JS檔打包壓縮時發生錯誤
前陣子專案的TypeScript更新成 1.4 ,今天上線時發現網站出現JavaScript錯誤,由錯誤訊息推測為 打包壓縮程序 有誤:第一個foo.js的最後一列 //# sourceMappingURL=foo.js.map 跟第二個bar.js的第一列;var __extends = this.__extends || function (d, b) { 被合併成一列,由於開頭有//符號,整列被註解掉,bar.js的第一列被吃掉以致程式碼不全出錯: /* Minification failed...
Posted 10 March 2015 12:57 AMJeffrey | with no comments 3,929
Filed under:
【茶包射手日記】奇妙的TypeScript編譯Bug
同事報案:Visual Studio 2013不知何時起無法編譯TypeScript,存檔或編譯都不會產生JavaScript檔。嘗試重啟VS2013、Windows依然無法解決,灰心喪志之餘,已經萌生重灌VS2013的念頭。 茶包射手出動。SOP第一步為判斷災難範圍,盡可能將事故現場縮到最小,用最少條件或步驟重現問題,封鎖線的範圍愈小,搜索調查的困難度愈低。 另開一個簡單Web專案,加入Hello World等級的TypeScript,測試編譯功能正常。故排除VS2013 TypeScript完全損壞的可能性...
Posted 04 February 2015 10:23 PMJeffrey | with no comments 4,174
Filed under: ,
TypeScript 1.4升級通知
同事報案,下載Angular TypeScript定義檔 後,jQuery.d.ts出現大量錯誤訊息,無法編譯: 看了錯誤所在,出現U|JQueryGenericPromise<U>的新奇寫法,先前在Kendo UI討論區發問曾聽Telerik RD提過,這似乎是Union Type新語法。TypeScript檔是1/22新出的,推測有加入新語法導致錯誤的可能。由TypeScript官網找到VS2013套件 下載連結 ,證實TypeScript 1.4版已於1/17釋出。 安裝1.4版後重開Visual...
Posted 27 January 2015 10:06 AMJeffrey | with no comments 4,610
Filed under:
TypeScript偵錯陷阱-中斷點位置不符
目前進行中的網站專案全面改用 TypeScript ,有顆地雷卻一忘再忘,踩了又踩,痛定思痛怒寫筆記,誓言戰勝 末稍血液循環問題 。 TypeScript需編譯轉成JavaScript,不過Visual Studio預設TypeScript一存檔就自動編譯,因此過去邊測邊改的習慣仍能照舊。在瀏覽器用F12開發工具找出問題,回Visual Studio修改TypeScript存檔,回到瀏覽器重新載入網頁就能重測修改結果,不需重新編譯整個專案,開發節奏較快,卻也因此在JavaScript偵錯期間偶爾發生靈異現象...
Posted 22 November 2014 07:33 PMJeffrey | with no comments 3,968
Filed under:
TIPS-TypeScript類別無法模擬同名函式
文章標題讓人霧煞煞,不過也想不出更精準的形容,但看下去大家(我是指有選修TypeScript的同學,其餘同學請前往自己的選課教室)應該就明白了… 故事是-我在寫TypeScript單元測試,想做一個假物件模擬SingalR HubProxy的行為,由NuGet取得定義檔signalr.d.ts,其中HubProxy介面定義如下: interface HubProxy { (connection: HubConnection, hubName: string ): HubProxy; state:...
Posted 04 November 2014 09:40 PMJeffrey | with no comments 3,136
Filed under:
TIPS-Chutzpah回報需要ECMAScript 5+
使用Chutzpah執行 TypeScript單元測試 ,出現以下錯誤: foo.ts(14,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. 檢查foo.ts發現其中使用get/set宣告屬性,比照C#在屬性讀取及設定時加入特定邏輯,如以下範例( Demo ),foo.Name="Jeffrey",但alert(foo.Name)會得到"Jeffrey...
Posted 31 October 2014 11:38 PMJeffrey | with no comments 5,022
Filed under:
我的TypeScript新手村心得
前陣子將一個中型網站的 JavaScript 翻寫成 TypeScript,轉換完數千行程式。身為 TypeScript 魯雞(Rookie),少不了一段步步踩雷、天天摔坑的日子,接著就漸入佳境,轉換後體驗到按  F2 立即更名、-調介面便知哪些地方要改的便利,令人感動不已。這段時間累積了一些心得,整理如下,供其他也要挑戰 JavaScript 轉 TypeScript 的朋友參考: 重要觀念: 左手 TypeScript 只是輔助! JavaScript 還是得學好,但不需要研究如何用...
Posted 19 September 2014 07:58 AMJeffrey | 4 comment(s) 17,330
Filed under:
再談TypeScript的this
前陣子談過 TypeScript 使用 this 常遇到的問題(參考: TypeScript的this陷阱 ),經網友提醒,我才發現 TypeScript 對 () => { … } ( Arrow Function Expression ,箭頭函式表示式,索性簡稱「箭函式」XD )加了魔法:自動宣告 var _this = this ,並將 () => { … } 裡的 this 自動換成 _this。 前陣子重整一個中型網站,將 JavaScript 翻成 TypeScript,改寫不少原本用JavaScript...
Posted 18 September 2014 08:04 AMJeffrey | 6 comment(s) 8,758
Filed under:
KO範例31 - 也來寫野生官網好了
市長候選人柯P的競選團隊前幾天做了一件有趣的事(只有程式魔人覺得有趣),突發奇想地將官網內容 透過Web API 方式提供,歡迎開發人員自行開發野生官網。昨天,保哥瞬間變出 AngularJS版 ,好不神奇! 依我的理解,這個需求還算簡單,應該也難不倒knockout.js,而更重要的是,這年頭大家都去玩NG了,如果我不寫,全台灣應該也沒有其他人會為Knockout寫範例了(KO堂口冷冷清清,頓時感到寂寞空虛覺得冷)。身為KO粉絲,我做了我該做的事 - 無關政治,但柯P官網API KO版範例來了...
更多文章 « 上一頁 - 下一頁 »

搜尋

Go

<April 2018>
SunMonTueWedThuFriSat
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication