【茶包射手日記】詭異的 TypeScript lib.es6.d.ts JSON 重複宣告錯誤

先前處理過幾次 VS2017 TypeScript 版本相容問題,特徵都是專案可編譯但 Error List 有錯誤。在某專案遇到類似狀況,錯誤訊息為 Cannot reclare block-scoped varialbe 'JSON'. @ lib.es6.d.ts。心中警鈴大作,心想應該又是煩人的 TypeScript 版本相容問題。

將 TypeScript 版本從 2.5 更新到 2.7,VS2017 也更新到最新版,問題卻不見改善,這才覺得問題不單純。

經過調查,問題根源讓人啞然失笑,原來專案裡有時代的眼淚 - JSON2.js,Visual Studio 會將專案內含的 JavaScript 也納入 TypeScript 參照範圍,JSON2.js 裡宣告的 JSON 全域變數與瀏覽器內建物件定義檔(lib.es6.d.ts)衝突。

專案網站的主要瀏覽器是 IE,IE8 起已內建 JSON,原本擔心啟用 IE7 相容模式時未內建 JSON 物件才加掛 JSON2.js,經實測 IE11 即使開啟 IE7 相容也有 JSON 可用,而實務環境殘存的 IE678 餘孽必須死,故放心將 JSON2.js 移除,結案!

歡迎推文分享:
Published 12 April 2018 10:43 PM 由 Jeffrey
Filed under:
Views: 1,769



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

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

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


Syndication