<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # TypeScript 函數 – 剩余,可選和默認參數 > 原文: [https://howtodoinjava.com/typescript/functions-rest-optional-default-params/](https://howtodoinjava.com/typescript/functions-rest-optional-default-params/) 學習使用示例創建函數,函數類型聲明,可選參數,默認參數和剩余參數。 ```java Table of Contents Create function Function Types Optional Parameters Default Parameters Rest Parameters ``` ## 創建函數 在 TypeScript 中,可以通過兩種方式創建函數。 1. #### 函數聲明 這些是以傳統 JavaScript 風格編寫的命名函數。 ```java console.log( showMyName("Lokesh") ); // Hi! Lokesh function showMyName (name: string): string { return `Hi! ${name}`; } ``` 2. #### 函數表達式 這些函數沒有名稱。 他們被分配給: ```java console.log(showMyName("Lokesh")); //Error - Define functional expression first. let showMyName = function(name: string): string { return `Hi! ${name}`; }; console.log(showMyName("Lokesh")); //Hi! Lokesh ``` 請注意,**這兩個函數聲明看上去都相似,但兩者卻不相同**。 JavaScript 解釋器可以在解析函數聲明時對其進行求值([變量提升](https://howtodoinjava.com/typescript/javascript-variable-hoisting/))。 另一方面,函數表達式是賦值的一部分,直到賦值完成后才進行計算。 ## 函數類型 在 TypeScript 中,一切都是類型,函數也是類型。 您可以將變量的類型聲明為`Function`,如下所示。 ```java let showMyName: Function = function(name: string): string { return `Hi! ${name}`; }; ``` 在上面的示例中,`showMyName`是只能指向`Function`類型的變量。 > 如果您未指定變量類型,TypeScript 會自動推斷類型。 ## 可選參數 與 JavaScript 不同,如果我們嘗試調用一個函數而不提供其簽名聲明的確切數量和參數類型,則 TypeScript 編譯器將引發錯誤。 要解決此問題,可以使用帶問號(`?`)的可選參數。 在下面的示例中,`message`被標記為可選參數。 ```java let showMyName = function(name: string, message?: string): string { return `Hi! ${name} {message}`; }; showMyName(); //Error showMyName('Lokesh'); //Hi! Lokesh showMyName('Lokesh', 'How are you?'); //Hi! Lokesh How are you? ``` 重要的是要注意,**可選參數必須始終位于函數的參數列表中的必需參數之后**。 ## 默認參數 可選參數是一個很棒的功能,但讓我們有邏輯去實現其值可以為`undefined`的方案。 它需要很多`null`檢查和`if-else`塊。 更好的方法是使這些參數具有默認值,而不是將它們聲明為可選值。 如果這樣做將導致更簡潔的代碼和易于維護的代碼。 ```java let showMyName = function(name: string, message: string = 'How are you?'): string { return `Hi! ${name} {message}`; }; showMyName('Lokesh'); //Hi! Lokesh How are you? showMyName('Lokesh', 'How are you buddy?'); //Hi! Lokesh How are you buddy? ``` 1)請注意,與可選參數一樣,**默認參數也必須位于函數參數列表中的必需參數之后**。 2)您**不能使任何參數可選并且默認**。 只允許一種類型。 ## 剩余參數 有時,您可能希望創建可以具有不確定數量參數的函數。 對于一個或兩個參數,可以使用可選參數或默認參數。 但是,如果參數數量未知,或者在運行時可能有所不同,該怎么辦。 例如您正在讀取輸入字段值,并且該值可能會因動態 UI 而有所不同。 此處**剩余參數**將為您提供幫助。 剩余參數語法使我們可以將**不確定數量的參數表示為數組**。 1. 要創建剩余參數,請在變量名稱前使用省略號,即三個點(`'...'`)。 2. 剩余參數必須為數組類型,否則我們將收到編譯錯誤。 3. 從理論上講,對最大參數個數沒有具體限制。 ```java let addInputValues = function( ...values: number[] ): number { let result = 0; for (let val of values) { result += val; } return result; }; addInputValues(); //OK - You can choose not to pass anything as well addInputValues(1, 1); //OK addInputValues(1, 2, 3); //OK addInputValues(1, 2, 3, 4, 5, 6); //OK ``` 將我的問題放在評論部分。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看