Browse by Tags

TypeScript Module 簡單練習
ES6 引進 Module(模組化) 概念,每個 Module 自成獨立 Scope,各 Module 可自由定義變數、型別,要開放外界存取的項目再透過 export 開放。當需要引用其他 Module 時,則必須明確使用 import 匯入才能使用。如此各 Module 可獨立開發維護而不彼此干擾,甚至能實現需要時再動態載入,大幅提升開發及應用彈性。 TypeScript 也支援 Module,我目前的專案沒用到這麼高級的技巧,原本並不打算深入了解,但發現苗頭不對。開源專案如 Angular 2...
Posted 10 October 2017 12:53 PMJeffrey | with no comments 5,726
Filed under:
TIPS-VS2017 無法編譯新版 TypeScript 定義檔
以下為在 Visual Studio 2017 使用 TypeScript 定義檔可能出現的狀況。由 NuGet 或 Github 取得 TypeScript 定義檔,卻噴出大量編譯錯誤無法使用: Visual Studio 2017 已更新至 9/19 才發行的 15.3.5 版本,TypeScript for Microsoft Visual Studio 也被一併更新至 15.3.10723.1: 前幾天剛好聽同事提起 VS2017 與 TypeScript 可各自更新(參考: Updating...
Posted 08 October 2017 02:59 PMJeffrey | with no comments 1,770
Filed under: ,
TypeScript Template String 中文字元被轉為 \uxxxx 格式
Template String 是 TypeScript 1.4 起加入的超好用功能(跟 C# Interpolated Strings 字串插值 一樣,是用過就上癮的好物),今天發現一個問題 - Template String 內含的中文字元會被強制轉成 \uxxxx。(這種表示法術語叫 Unicode Escape Sequences ) 例如以下 範例 : var t2 = `ABC-中文-${n}`; 會變成: var t2 = "ABC-\u4E2D\u6587-"...
Posted 05 October 2017 10:13 PMJeffrey | with no comments 2,193
Filed under:
JavaScript 開發者 ES6 小抄筆記
在網路上看到這篇 - Modern JavaScript Cheatsheet - Modern JS Cheatsheet ,給既有 JavaScript 開發者看的小抄,指出因應 ES6/ES2015 新標準的注意事項。(註:如果你被 ECMAScript 6、ES6、ES2015 等術語搞到頭很昏,可以參考 這篇 ) 而這篇則是我以一個 jQuery/TypeScript/C# 開發者角度閱讀小抄的筆記整理,主要供自己備忘(謎: 天哪,這年頭連看小抄都要做筆記了嗎?),順便分享給類似背景的同學參考...
VS2017 Angular TypeScript 定義檔編譯錯誤
改用 Visual Studio 2017 好一陣子,維護修改 TypeScrpt + Angular 專案都沒什麼問題。這兩天新起一個 ASP.NET 網站專案想寫個簡單的 Coding4Fun SPA,用 NuGet 裝好 jQuery、Angluar,順手也裝上 jQuery 與 Angular 的 TypeScript 定義檔 ,發現 Angular 定義檔冒出數十個 Cannot find name 'IPromise'、Namesapce 'angular'...
Posted 15 April 2017 09:50 AMJeffrey | with no comments 4,709
Filed under: ,
用 TypeScript await 讓操作確認流程回歸直覺
上回提到 TypeScript 2.1 讓 ES5 平台也能支援 async、await ,形同 JavaScript 非同步程式的一場革命,衝著這點大家都該認真考慮改用 TypeScript。但 async、await 當真如此神奇?想想,上回漏講一個 await 殺手級應用案例,說服力有點弱,趕緊補上。 大家小時侯都有寫過這種需求:網頁進行更新、刪除操作前跳出對話框請使用者三思,回答「取消」可以反悔取消,回答「確定」才正式執行。在那個古老而純真的年代,只要寫一行就搞定: if (confirm...
Posted 01 January 2017 09:32 AMJeffrey | with no comments 5,201
Filed under:
JavaScript 非同步程式革命-async、await 與 TypeScript 2.1
.NET 4 的 Task 大幅簡化多執行緒程式碼複雜度,而 4.5 推出的 async/await ( 參考 )則讓非同步程式的寫法更精簡。(註:在博客園找到一篇從 Task、ThreadPool 談到 await 的 廣泛介紹 ,可以一讀) 網頁開發老鳥都知道,JavaScript 端的非同步邏輯不比 C# 簡單,複雜起來會讓人寫程式寫到嘔出幾十兩鮮血。於是在前端也看到類似 Thread、Task、async/await 的發展史:最早只能靠 Callback、setTimeout 苦手硬刻...
Posted 23 December 2016 06:33 AMJeffrey | with no comments 13,425
Filed under:
小試 JavaScript Promise
非同步邏輯是寫 JavaScript 逃不掉的複雜課題,古早流行的做法是傳入 Callback 函式當參數,待特定作業完成再呼叫,缺點是串接程序一旦變多,就會出現波動拳式排版,寫到渾然不知身處夢境第幾層: asyncJob1( function () { //Callback 函式: asyncJob1 完成後呼叫 //...... ayncJob2( function () { //Callback 函式: asyncJob2 完成後呼叫 //...... ayncJob3( function...
與上層命名空間成員名稱重複問題:TypeScript 與 C#
同事遇到的 TypeScript 小問題一則,如下圖,Foo 與 Bar.Foo Module 裡都有個 IBlah Interface(不算良好的設計但合法,用在特定情境可簡化程式),在 Bar.Foo 內想引用更上層 Foo 的 IBlah,不管宣告型別是 IBlah 還是 Foo.IBlah,指向的都是 Bar.Foo.IBlah。 同樣的情境,在 C# 裡也會上演,在 Bar.Foo 命名空間內不管寫 Foo.IBlah 或 IBlah 指的都是Bar.Foo.IBlah: C# 可用 global...
Posted 17 November 2016 05:19 PMJeffrey | with no comments 3,358
Filed under: ,
TypeScript 1.4 - 2.0 改版整理
TypeScript 2.0 已於 9/22 正式推出 ,想起從 1.4版 起已好久沒有深入了解改版差異,順勢做個重點整理。 TypeScript 改版歷程 TypeScript 1.0 推出時,由於具有支援強型別、介面、繼承等物件導向語言特性,提供編譯期錯誤檢查,再加上完整 IDE 支援,很適合開發大型且複雜的 JavaScript 程式,獲得許多前端開發者青睞,TypeScript 也 自此 成為我開發網站的首選。 TypeScript 在 1.1 時選擇重寫編譯器,提供四倍速度,同時也移上...
Posted 24 September 2016 06:03 PMJeffrey | with no comments 6,138
Filed under:
【茶包射手日記】TypeScript MSBuild編譯失敗
接獲報案,專案修改無法使用 TFS Build Service 編譯,錯誤訊息如下: D:\Works\1\BLAH\src\Web\Scripts\Foo.ts (112): Build: 'let' declarations are only available when targeting ECMAScript 6 and higher. 訊息指向程式使用TypeScript新支援的 let語法 ,只能編譯成ES6,但專案設定輸出ES5。但專案在本機Visual Studio...
Posted 01 June 2016 05:45 AMJeffrey | with no comments 3,332
Filed under: ,
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,220
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,308
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,426
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 5,542
更多文章 下一頁 »

搜尋

Go

<December 2017>
SunMonTueWedThuFriSat
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


Syndication