作者:Marius Schulz譯者:前端小智來源:https://mariusschulz.com/
TypeScript 2.4 為標識符實現了拼寫糾正機制。即使咱們稍微拼錯了一個變量、屬性或函數名,TypeScript 在很多情況下都可以提示正確的拼寫。
TypeScript 2.5 實現了可選的 catch
綁定建議,該建議更改了 ECMAScript 語法,以允許在 catch
子句中省略變量綁定。 也就是說,咱們現在可以在try/catch
語句中忽略錯誤變量及其周圍的括號:
try { // ...} catch { // ...}
以前,即使不使用變量,也必須始終聲明它:
try { // ...} catch (error) { // ...}
如果你的目標ECMAScript版本不支持可選的catch
綁定(比如 ES5
或 ES2015
),那么TypeScript 編譯器將為每個catch
子句添加一個變量綁定,這樣生成的代碼在語法上就有效了。
生成前:
try { // ...} catch { // ...}
下面當咱們以ES5
為目標時 TypeScript 編譯器生成的 JS 代碼:
try { // ...}catch (_a) { // ...}
如果改為使用--target esnext
來編譯代碼,則生成的不帶變量綁定的catch
子句將不變:
try { // ...}catch { // ...}
catch
綁定的用例通常,咱們不希望忽略應用程序中的錯誤。至少,希望將它們打印到控制臺。然而,在一些罕見的情況下,可能根本不需要 catch
變量綁定。
假設咱們試圖將一個錯誤記錄到控制臺,然后由于某種原因,日志代碼本身會導致另一個錯誤。咱不希望日志代碼拋出錯誤,所以在這種情況下,沒有綁定的catch
子句可能是有意義的
function log(error) { try { console.error(error); } catch { // There's not much more we can do }}
TypeScript 2.6 添加了對JSX
片段的支持。 在.tsx
文件中,現在可以使用新的<> ... </>
語法來創建片段。
在React
中,從一個組件返回多個元素是一種常見模式。例如,假設咱們希望在以下組件中渲染多個列表項:
class List extends React.Component { render() { return ( <ul> <ListItems /> <li>Item 3</li> </ul> ); }}
然而,在咱們的ListItems
組件中,咱們不能像這樣簡單地返回多個相鄰的JSX
元素
class ListItems extends React.Component { render() { return ( <li>Item 1</li> <li>Item 2</li> ); }}
相鄰的JSX
元素必須包裹在一個封閉的元素中,因此咱們可以添加一個p
元素
class ListItems extends React.Component { render() { return ( <p> <li>Item 1</li> <li>Item 2</li> </p> ); }}
不幸的是,添加這樣的包裝器會破壞列表的結構。咱們的ListItems
組件當前渲染以下DOM
元素
<ul> <p> <li>Item 1</li> <li>Item 2</li> </p> <li>Item 3</li></ul>
注意,<p>
不屬于這里,咱們可以通過使用JSX
片段語法來消除它:
class ListItems extends React.Component { render() { return ( <> <li>Item 1</li> <li>Item 2</li> </> ); }}
片段允許咱們對多個JSX
元素進行分組,而不需要添加額外的節點?,F在,List
組件渲染結構就正常了:
<ul> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li></ul>
另外,也可以寫React.Fragment
來代替新的JSX語法:
class ListItems extends React.Component { render() { return ( <React.Fragment> <li>Item 1</li> <li>Item 2</li> </React.Fragment> ); }}
下面帶有新的JSX
語法的ListItems
組件
class ListItems extends React.Component { render() { return ( <> <li>Item 1</li> <li>Item 2</li> </> ); }}
如果咱們使用--jsx react
(和--target es2015
)編譯.tsx
文件,會生成下面的 JS 代碼:
class ListItems extends React.Component { render() { return ( React.createElement( React.Fragment, null, React.createElement("li", null, "Item 1"), React.createElement("li", null, "Item 2") ) ); }}
編譯器通過調用 React.createElement()
方法來替換片段語法,并將其React.Fragment
作為第一個參數傳遞。
如果使用--jsx preserve
(和--target es2015
)來編譯ListItems
組件,那么生成的代碼就不會有變化:
class ListItems extends React.Component { render() { return ( <> <li>Item 1</li> <li>Item 2</li> </> ); }}
代碼部署后可能存在的BUG沒法實時知道,事后為了解決這些BUG,花了大量的時間進行log 調試,這邊順便給大家推薦一個好用的BUG監控工具 Fundebug。
原文:https://mariusschulz.com/blog...https://mariusschulz.com/blog...
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
怎樣把頭像縮???具體操作步驟不勝感激:一、這里在用的是Photoshop來變化。在Photoshop中再打開要想只不過是頭像的圖片。二、然后再再點擊最上方菜單欄的圖像。三、點擊畫布大小。四、將畫布的長度和寬度設置成不同的大小,點擊確認。五、而現在這個可以然后點擊左邊工具欄的布料裁剪工具。六、這個可以按住不放shift接著接受裁切,這樣的話可以不絕對的保證裁剪制作好的圖像當然是正方形的。七、裁剪好后...
淘寶上傳圖片怎么是黑色?淘寶上傳的主圖顏色變成灰黑是因為像素沒調好,設置沒做好。淘寶怎么調成夜間模式?淘寶切換到夜間模式的方法如下1.單擊設置菜單中的[顯示]。2.單擊[黑暗模式]。3.單擊[更多黑暗模式設置]。4.打開淘寶右邊的開關。淘寶夜間模式怎么設置?淘寶夜間模式設置方法如下:1.在設置菜單中輸入[顯示]。2.單擊[黑暗模式]。3.單擊[更多黑暗模式設置]。4.打開淘寶右邊的開關就可以了。怎...
sort函數在C語言中的作用是啥?C語言中,sort函數具體介紹是什么,可以舉一下實例嗎?你好,我是[姜曉的答案],我很高興為你回答。Sort(&aa[3],5)表示對AA[3]中接下來的五個元素進行排序,即對4、5、6、7和8的數字進行排序,其余元素保持不變。實際上,從函數的定義中,我們可以看到void sort(int a[]和int n),其中int a[]是開始排序的第一個地址,in...