暮雪煮清茶 發表於 2020-1-14 17:35:00

typescript的重载

<p class="blockParagraph-544a408c" data-key="22419"><span class="text-4505230f--TextH400-3033861f--textContentFamily-49a318e1">重载允许一个函数接受不同数量或类型的参数时,作出不同的处理。</span></p>
<p class="blockParagraph-544a408c" data-key="22431"><span class="text-4505230f--TextH400-3033861f--textContentFamily-49a318e1"><span data-key="22420"><span data-offset-key="22420:0">比如,我们需要实现一个函数 <span data-offset-key="22420:1"><code class="code-81e98f88" data-slate-leaf="true">reverse</code><span data-offset-key="22420:2">,输入数字 <span data-offset-key="22420:3"><code class="code-81e98f88" data-slate-leaf="true">123</code><span data-offset-key="22420:4"> 的时候,输出反转的数字 <span data-offset-key="22420:5"><code class="code-81e98f88" data-slate-leaf="true">321</code><span data-offset-key="22420:6">,输入字符串 <span data-offset-key="22420:7"><code class="code-81e98f88" data-slate-leaf="true">'hello'</code><span data-offset-key="22420:8"> 的时候,输出反转的字符串 <span data-offset-key="22420:9"><code class="code-81e98f88" data-slate-leaf="true">'olleh'</code><span data-offset-key="22420:10">。</span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<p class="blockParagraph-544a408c" data-key="22433" data-slate-fragment="JTdCJTIyb2JqZWN0JTIyJTNBJTIyZG9jdW1lbnQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOSU4NyU4RCVFOCVCRCVCRCVFNSU4NSU4MSVFOCVBRSVCOCVFNCVCOCU4MCVFNCVCOCVBQSVFNSU4NyVCRCVFNiU5NSVCMCVFNiU4RSVBNSVFNSU4RiU5NyVFNCVCOCU4RCVFNSU5MCU4QyVFNiU5NSVCMCVFOSU4NyU4RiVFNiU4OCU5NiVFNyVCMSVCQiVFNSU5RSU4QiVFNyU5QSU4NCVFNSU4RiU4MiVFNiU5NSVCMCVFNiU5NyVCNiVFRiVCQyU4QyVFNCVCRCU5QyVFNSU4NyVCQSVFNCVCOCU4RCVFNSU5MCU4QyVFNyU5QSU4NCVFNSVBNCU4NCVFNyU5MCU4NiVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTYlQUYlOTQlRTUlQTYlODIlRUYlQkMlOEMlRTYlODglOTElRTQlQkIlQUMlRTklOUMlODAlRTglQTYlODElRTUlQUUlOUUlRTclOEUlQjAlRTQlQjglODAlRTQlQjglQUElRTUlODclQkQlRTYlOTUlQjAlMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIycmV2ZXJzZSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUVGJUJDJThDJUU4JUJFJTkzJUU1JTg1JUE1JUU2JTk1JUIwJUU1JUFEJTk3JTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMjEyMyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJUU3JTlBJTg0JUU2JTk3JUI2JUU1JTgwJTk5JUVGJUJDJThDJUU4JUJFJTkzJUU1JTg3JUJBJUU1JThGJThEJUU4JUJEJUFDJUU3JTlBJTg0JUU2JTk1JUIwJUU1JUFEJTk3JTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMjMyMSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUVGJUJDJThDJUU4JUJFJTkzJUU1JTg1JUE1JUU1JUFEJTk3JUU3JUFDJUE2JUU0JUI4JUIyJTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMidoZWxsbyclMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZSUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMCVFNyU5QSU4NCVFNiU5NyVCNiVFNSU4MCU5OSVFRiVCQyU4QyVFOCVCRSU5MyVFNSU4NyVCQSVFNSU4RiU4RCVFOCVCRCVBQyVFNyU5QSU4NCVFNSVBRCU5NyVFNyVBQyVBNiVFNCVCOCVCMiUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjInb2xsZWgnJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmNvZGUlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU1JTg4JUE5JUU3JTk0JUE4JUU4JTgxJTk0JUU1JTkwJTg4JUU3JUIxJUJCJUU1JTlFJThCJUVGJUJDJThDJUU2JTg4JTkxJUU0JUJCJUFDJUU1JThGJUFGJUU0JUJCJUE1JUU4JUJGJTk5JUU0JUI5JTg4JUU1JUFFJTlFJUU3JThFJUIwJUVGJUJDJTlBJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlNUQlN0Q="><span class="text-4505230f--TextH400-3033861f--textContentFamily-49a318e1">利用联合类型,我们可以这么实现:</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">function</span> reverse(x: number | string): number |<span style="color: rgba(0, 0, 0, 1)"> string {
    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 0, 255, 1)">typeof</span> x === 'number'<span style="color: rgba(0, 0, 0, 1)">) {
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> Number(x.toString().split('').reverse().join(''<span style="color: rgba(0, 0, 0, 1)">));
    } </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 0, 255, 1)">typeof</span> x === 'string'<span style="color: rgba(0, 0, 0, 1)">) {
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> x.split('').reverse().join(''<span style="color: rgba(0, 0, 0, 1)">);
    }
}</span></pre>
</div>
<p class="blockParagraph-544a408c" data-key="22450"><span class="text-4505230f--TextH400-3033861f--textContentFamily-49a318e1">然而这样有一个缺点,就是不能够精确的表达,输入为数字的时候,输出也应该为数字,输入为字符串的时候,输出也应该为字符串。</span></p>
<p class="blockParagraph-544a408c" data-key="22454" data-slate-fragment="JTdCJTIyb2JqZWN0JTIyJTNBJTIyZG9jdW1lbnQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNyU4NCVCNiVFOCU4MCU4QyVFOCVCRiU5OSVFNiVBMCVCNyVFNiU5QyU4OSVFNCVCOCU4MCVFNCVCOCVBQSVFNyVCQyVCQSVFNyU4MiVCOSVFRiVCQyU4QyVFNSVCMCVCMSVFNiU5OCVBRiVFNCVCOCU4RCVFOCU4MyVCRCVFNSVBNCU5RiVFNyVCMiVCRSVFNyVBMSVBRSVFNyU5QSU4NCVFOCVBMSVBOCVFOCVCRSVCRSVFRiVCQyU4QyVFOCVCRSU5MyVFNSU4NSVBNSVFNCVCOCVCQSVFNiU5NSVCMCVFNSVBRCU5NyVFNyU5QSU4NCVFNiU5NyVCNiVFNSU4MCU5OSVFRiVCQyU4QyVFOCVCRSU5MyVFNSU4NyVCQSVFNCVCOSU5RiVFNSVCQSU5NCVFOCVBRiVBNSVFNCVCOCVCQSVFNiU5NSVCMCVFNSVBRCU5NyVFRiVCQyU4QyVFOCVCRSU5MyVFNSU4NSVBNSVFNCVCOCVCQSVFNSVBRCU5NyVFNyVBQyVBNiVFNCVCOCVCMiVFNyU5QSU4NCVFNiU5NyVCNiVFNSU4MCU5OSVFRiVCQyU4QyVFOCVCRSU5MyVFNSU4NyVCQSVFNCVCOSU5RiVFNSVCQSU5NCVFOCVBRiVBNSVFNCVCOCVCQSVFNSVBRCU5NyVFNyVBQyVBNiVFNCVCOCVCMiVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTglQkYlOTklRTYlOTclQjYlRUYlQkMlOEMlRTYlODglOTElRTQlQkIlQUMlRTUlOEYlQUYlRTQlQkIlQTUlRTQlQkQlQkYlRTclOTQlQTglRTklODclOEQlRTglQkQlQkQlRTUlQUUlOUElRTQlQjklODklRTUlQTQlOUElRTQlQjglQUElMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIycmV2ZXJzZSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJUU3JTlBJTg0JUU1JTg3JUJEJUU2JTk1JUIwJUU3JUIxJUJCJUU1JTlFJThCJUVGJUJDJTlBJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlNUQlN0Q="><span class="text-4505230f--TextH400-3033861f--textContentFamily-49a318e1"><span data-key="22451"><span data-offset-key="22451:0">这时,我们可以使用重载定义多个 <span data-offset-key="22451:1"><code class="code-81e98f88" data-slate-leaf="true">reverse</code><span data-offset-key="22451:2"> 的函数类型:</span></span></span></span></span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> reverse(x: number): number;
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> reverse(x: string): string;
</span><span style="color: rgba(0, 0, 255, 1)">function</span> reverse(x: number | string): number |<span style="color: rgba(0, 0, 0, 1)"> string {
    </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 0, 255, 1)">typeof</span> x === 'number'<span style="color: rgba(0, 0, 0, 1)">) {
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> Number(x.toString().split('').reverse().join(''<span style="color: rgba(0, 0, 0, 1)">));
    } </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 0, 255, 1)">typeof</span> x === 'string'<span style="color: rgba(0, 0, 0, 1)">) {
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> x.split('').reverse().join(''<span style="color: rgba(0, 0, 0, 1)">);
    }
}</span></pre>
</div>
<p class="blockParagraph-544a408c" data-key="22477"><span class="text-4505230f--TextH400-3033861f--textContentFamily-49a318e1"><span data-key="22474"><span data-offset-key="22474:0">上例中,我们重复定义了多次函数 <span data-offset-key="22474:1"><code class="code-81e98f88" data-slate-leaf="true">reverse</code><span data-offset-key="22474:2">,前几次都是函数定义,最后一次是函数实现。在编辑器的代码提示中,可以正确的看到前两个提示。</span></span></span></span></span></p>
<p class="blockParagraph-544a408c" data-key="22479" data-slate-fragment="JTdCJTIyb2JqZWN0JTIyJTNBJTIyZG9jdW1lbnQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNCVCOCU4QSVFNCVCRSU4QiVFNCVCOCVBRCVFRiVCQyU4QyVFNiU4OCU5MSVFNCVCQiVBQyVFOSU4NyU4RCVFNSVBNCU4RCVFNSVBRSU5QSVFNCVCOSU4OSVFNCVCQSU4NiVFNSVBNCU5QSVFNiVBQyVBMSVFNSU4NyVCRCVFNiU5NSVCMCUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJyZXZlcnNlJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmNvZGUlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRUYlQkMlOEMlRTUlODklOEQlRTUlODclQTAlRTYlQUMlQTElRTklODMlQkQlRTYlOTglQUYlRTUlODclQkQlRTYlOTUlQjAlRTUlQUUlOUElRTQlQjklODklRUYlQkMlOEMlRTYlOUMlODAlRTUlOTAlOEUlRTQlQjglODAlRTYlQUMlQTElRTYlOTglQUYlRTUlODclQkQlRTYlOTUlQjAlRTUlQUUlOUUlRTclOEUlQjAlRTMlODAlODIlRTUlOUMlQTglRTclQkMlOTYlRTglQkUlOTElRTUlOTklQTglRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTYlOEYlOTAlRTclQTQlQkElRTQlQjglQUQlRUYlQkMlOEMlRTUlOEYlQUYlRTQlQkIlQTUlRTYlQUQlQTMlRTclQTElQUUlRTclOUElODQlRTclOUMlOEIlRTUlODglQjAlRTUlODklOEQlRTQlQjglQTQlRTQlQjglQUElRTYlOEYlOTAlRTclQTQlQkElRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU2JUIzJUE4JUU2JTg0JThGJUVGJUJDJThDVHlwZVNjcmlwdCUyMCVFNCVCQyU5QSVFNCVCQyU5OCVFNSU4NSU4OCVFNCVCQiU4RSVFNiU5QyU4MCVFNSU4OSU4RCVFOSU5RCVBMiVFNyU5QSU4NCVFNSU4NyVCRCVFNiU5NSVCMCVFNSVBRSU5QSVFNCVCOSU4OSVFNSVCQyU4MCVFNSVBNyU4QiVFNSU4QyVCOSVFOSU4NSU4RCVFRiVCQyU4QyVFNiU4OSU4MCVFNCVCQiVBNSVFNSVBNCU5QSVFNCVCOCVBQSVFNSU4NyVCRCVFNiU5NSVCMCVFNSVBRSU5QSVFNCVCOSU4OSVFNSVBNiU4MiVFNiU5RSU5QyVFNiU5QyU4OSVFNSU4QyU4NSVFNSU5MCVBQiVFNSU4NSVCMyVFNyVCMyVCQiVFRiVCQyU4QyVFOSU5QyU4MCVFOCVBNiU4MSVFNCVCQyU5OCVFNSU4NSU4OCVFNiU4QSU4QSVFNyVCMiVCRSVFNyVBMSVBRSVFNyU5QSU4NCVFNSVBRSU5QSVFNCVCOSU4OSVFNSU4NiU5OSVFNSU5QyVBOCVFNSU4OSU4RCVFOSU5RCVBMiVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTVEJTdE"><span class="text-4505230f--TextH400-3033861f--textContentFamily-49a318e1">注意,TypeScript 会优先从最前面的函数定义开始匹配,所以多个函数定义如果有包含关系,需要优先把精确的定义写在前面。</span></p>
<p class="blockParagraph-544a408c" data-key="22479" data-slate-fragment="JTdCJTIyb2JqZWN0JTIyJTNBJTIyZG9jdW1lbnQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNCVCOCU4QSVFNCVCRSU4QiVFNCVCOCVBRCVFRiVCQyU4QyVFNiU4OCU5MSVFNCVCQiVBQyVFOSU4NyU4RCVFNSVBNCU4RCVFNSVBRSU5QSVFNCVCOSU4OSVFNCVCQSU4NiVFNSVBNCU5QSVFNiVBQyVBMSVFNSU4NyVCRCVFNiU5NSVCMCUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJyZXZlcnNlJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmNvZGUlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRUYlQkMlOEMlRTUlODklOEQlRTUlODclQTAlRTYlQUMlQTElRTklODMlQkQlRTYlOTglQUYlRTUlODclQkQlRTYlOTUlQjAlRTUlQUUlOUElRTQlQjklODklRUYlQkMlOEMlRTYlOUMlODAlRTUlOTAlOEUlRTQlQjglODAlRTYlQUMlQTElRTYlOTglQUYlRTUlODclQkQlRTYlOTUlQjAlRTUlQUUlOUUlRTclOEUlQjAlRTMlODAlODIlRTUlOUMlQTglRTclQkMlOTYlRTglQkUlOTElRTUlOTklQTglRTclOUElODQlRTQlQkIlQTMlRTclQTAlODElRTYlOEYlOTAlRTclQTQlQkElRTQlQjglQUQlRUYlQkMlOEMlRTUlOEYlQUYlRTQlQkIlQTUlRTYlQUQlQTMlRTclQTElQUUlRTclOUElODQlRTclOUMlOEIlRTUlODglQjAlRTUlODklOEQlRTQlQjglQTQlRTQlQjglQUElRTYlOEYlOTAlRTclQTQlQkElRTMlODAlODIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU2JUIzJUE4JUU2JTg0JThGJUVGJUJDJThDVHlwZVNjcmlwdCUyMCVFNCVCQyU5QSVFNCVCQyU5OCVFNSU4NSU4OCVFNCVCQiU4RSVFNiU5QyU4MCVFNSU4OSU4RCVFOSU5RCVBMiVFNyU5QSU4NCVFNSU4NyVCRCVFNiU5NSVCMCVFNSVBRSU5QSVFNCVCOSU4OSVFNSVCQyU4MCVFNSVBNyU4QiVFNSU4QyVCOSVFOSU4NSU4RCVFRiVCQyU4QyVFNiU4OSU4MCVFNCVCQiVBNSVFNSVBNCU5QSVFNCVCOCVBQSVFNSU4NyVCRCVFNiU5NSVCMCVFNSVBRSU5QSVFNCVCOSU4OSVFNSVBNiU4MiVFNiU5RSU5QyVFNiU5QyU4OSVFNSU4QyU4NSVFNSU5MCVBQiVFNSU4NSVCMyVFNyVCMyVCQiVFRiVCQyU4QyVFOSU5QyU4MCVFOCVBNiU4MSVFNCVCQyU5OCVFNSU4NSU4OCVFNiU4QSU4QSVFNyVCMiVCRSVFNyVBMSVBRSVFNyU5QSU4NCVFNSVBRSU5QSVFNCVCOSU4OSVFNSU4NiU5OSVFNSU5QyVBOCVFNSU4OSU4RCVFOSU5RCVBMiVFMyU4MCU4MiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTVEJTdE"><span class="text-4505230f--TextH400-3033861f--textContentFamily-49a318e1">转自:https://ts.xcatliu.com/basics/type-of-function</span></p><br><br>
来源:https://www.cnblogs.com/vickylinj/p/12193253.html
頁: [1]
查看完整版本: typescript的重载