1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          【TS 演化史 -- 15】可選的 catch 語句變量 和 JSX 片段語法

          來源:互聯網轉載 時間:2024-01-29 08:30:26

          作者:Marius Schulz譯者:前端小智來源:https://mariusschulz.com/

          TypeScript 2.4 為標識符實現了拼寫糾正機制。即使咱們稍微拼錯了一個變量、屬性或函數名,TypeScript 在很多情況下都可以提示正確的拼寫。

          TypeScript 2.5 實現了可選的 catch 綁定建議,該建議更改了 ECMAScript 語法,以允許在 catch 子句中省略變量綁定。 也就是說,咱們現在可以在try/catch語句中忽略錯誤變量及其周圍的括號:

          try {  // ...} catch {  // ...}

          以前,即使不使用變量,也必須始終聲明它:

          try {  // ...} catch (error) {  // ...}

          成的 JS 代碼

          如果你的目標ECMAScript版本不支持可選的catch綁定(比如 ES5ES2015),那么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  }}

          JSX 片段語法

          TypeScript 2.6 添加了對JSX片段的支持。 在.tsx文件中,現在可以使用新的<> ... </>語法來創建片段。

          JSX 片段背后的動機

          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>    );  }}

          使用 TypeScript 編譯 JSX 片段

          下面帶有新的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...

          標簽:tscase-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          怎樣把頭像縮???具體操作步驟不勝感激:一、這里在用的是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...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>