{"componentChunkName":"component---src-templates-blog-post-tsx","path":"/TypeScript_20220123/","result":{"data":{"markdownRemark":{"html":"<h2 id=\"関数の定義方法\" style=\"position:relative;\"><a href=\"#%E9%96%A2%E6%95%B0%E3%81%AE%E5%AE%9A%E7%BE%A9%E6%96%B9%E6%B3%95\" aria-label=\"関数の定義方法 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>関数の定義方法</h2>\n<ul>\n<li>functionによる定義</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-typescript line-numbers\"><code class=\"language-typescript\"><span class=\"token comment\">//引数、戻り値に型を指定する</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">triangleArea</span><span class=\"token punctuation\">(</span>height<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">,</span> bottom<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">)</span><span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> bottom <span class=\"token operator\">*</span> height <span class=\"token operator\">/</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span></span></pre></div>\n<ul>\n<li>関数リテラルによる定義</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-typescript line-numbers\"><code class=\"language-typescript\"><span class=\"token comment\">//無名関数で型を指定(triangleAreaにもfunctionの型を指定してみる)</span>\n<span class=\"token keyword\">let</span> <span class=\"token function-variable function\">triangleArea</span><span class=\"token operator\">:</span><span class=\"token punctuation\">(</span>height<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">,</span> bottom<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function-variable function\">number</span>  <span class=\"token operator\">=</span>\n<span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span>height<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">,</span> bottom<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">)</span><span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> bottom <span class=\"token operator\">*</span> height <span class=\"token operator\">/</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<ul>\n<li>アロー関数による定義</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-typescript line-numbers\"><code class=\"language-typescript\"><span class=\"token keyword\">let</span> <span class=\"token function-variable function\">triangleArea</span><span class=\"token operator\">:</span><span class=\"token punctuation\">(</span>height<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">,</span> bottom<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token builtin\">number</span>  <span class=\"token operator\">=</span>\n<span class=\"token punctuation\">(</span>height<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">,</span> bottom<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">)</span><span class=\"token operator\">:</span><span class=\"token builtin\">number</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> bottom <span class=\"token operator\">*</span> height <span class=\"token operator\">/</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span></span></pre></div>\n<h2 id=\"引数の定義方法あれこれ\" style=\"position:relative;\"><a href=\"#%E5%BC%95%E6%95%B0%E3%81%AE%E5%AE%9A%E7%BE%A9%E6%96%B9%E6%B3%95%E3%81%82%E3%82%8C%E3%81%93%E3%82%8C\" aria-label=\"引数の定義方法あれこれ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>引数の定義方法あれこれ</h2>\n<ul>\n<li>引数を省略可能にする</li>\n</ul>\n<p>通常引数は必須となっている、引数名の後に「?」をつけると省略可能になる。\n省略した引数にはundefinedが渡される。</p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-typescript line-numbers\"><code class=\"language-typescript\"><span class=\"token comment\">// mesは省略可能な引数にする</span>\n<span class=\"token keyword\">const</span> info <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>mes<span class=\"token operator\">?</span><span class=\"token operator\">:</span><span class=\"token builtin\">string</span><span class=\"token punctuation\">)</span><span class=\"token operator\">:</span><span class=\"token builtin\">string</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>mes <span class=\"token operator\">===</span> <span class=\"token keyword\">undefined</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n      mes <span class=\"token operator\">=</span> <span class=\"token string\">'何もなし'</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n  <span class=\"token keyword\">return</span> <span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">2022/01/23 INFO </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>mes<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">;</span>\n\n<span class=\"token punctuation\">}</span>\n<span class=\"token builtin\">console</span><span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token function\">info</span><span class=\"token punctuation\">(</span><span class=\"token string\">'何か起きたよ'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// 2022/01/23 INFO 何か起きたよ</span>\n<span class=\"token builtin\">console</span><span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token function\">info</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// 2022/01/23 INFO 何もなし</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<ul>\n<li>引数に規定値を設定する</li>\n</ul>\n<p>規定値を設定しておくと引数を省略した場合に引数には規定値が代入される。</p>\n<p>引数の任意設定「?」とは同時に使用できない。</p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-typescript line-numbers\"><code class=\"language-typescript\"><span class=\"token comment\">// mesの規定値に「何もなし」を設定</span>\n<span class=\"token keyword\">const</span> info <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>mes <span class=\"token operator\">=</span> <span class=\"token string\">'何もなし'</span><span class=\"token punctuation\">)</span><span class=\"token operator\">:</span><span class=\"token builtin\">string</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">2022/01/23 INFO </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>mes<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">;</span>\n\n<span class=\"token punctuation\">}</span>\n<span class=\"token builtin\">console</span><span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token function\">info</span><span class=\"token punctuation\">(</span><span class=\"token string\">'何か起きたよ'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// 2022/01/23 INFO 何か起きたよ</span>\n<span class=\"token builtin\">console</span><span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token function\">info</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// 2022/01/23 INFO 何もなし</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<ul>\n<li>可変長引数</li>\n</ul>\n<p>引数の前に「…」をつけると配列型として可変長引数として定義できる。</p>\n<p>可変長引数は最後の引数にのみ設定可能。</p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-typescript line-numbers\"><code class=\"language-typescript\"><span class=\"token comment\">//valは複数の引数を文字列配列で受け取るので配列型「型種類[]」で定義</span>\n<span class=\"token keyword\">const</span> test <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">...</span>val<span class=\"token operator\">:</span><span class=\"token builtin\">string</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">:</span><span class=\"token keyword\">void</span><span class=\"token operator\">=></span>  <span class=\"token punctuation\">{</span>\n  <span class=\"token builtin\">console</span><span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>val<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token string\">'AAA'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'BBB'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'CCC'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">//[ 'AAA', 'BBB', 'CCC' ]</span>\n\n<span class=\"token comment\">//可変長引数は一番最後に定義する</span>\n<span class=\"token keyword\">const</span> test2 <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>num<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">...</span>val<span class=\"token operator\">:</span><span class=\"token builtin\">string</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">:</span><span class=\"token keyword\">void</span><span class=\"token operator\">=></span>  <span class=\"token punctuation\">{</span>\n  <span class=\"token builtin\">console</span><span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>val<span class=\"token punctuation\">[</span>num<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token function\">test2</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'AAA'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'BBB'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'CCC'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">//BBB</span>\n\n<span class=\"token comment\">/** 可変超引数を最初にするとエラー\nconst test3 = (...val:string[],num:number) :void=>  {\n  console.log(val[num]);\n}\n*/</span>\n</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<h2 id=\"関数のオーバーロード\" style=\"position:relative;\"><a href=\"#%E9%96%A2%E6%95%B0%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AD%E3%83%BC%E3%83%89\" aria-label=\"関数のオーバーロード permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>関数のオーバーロード</h2>\n<p>同じ名前で引数または戻り値が異なる関数を定義する。</p>\n<p>最初に関数のシグニチャのみを定義し、後からまとめて実装する。</p>\n<p>関数実行時にシグネチャで定義した引数以外を指定するとエラーとなる。</p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-typescript line-numbers\"><code class=\"language-typescript\"><span class=\"token comment\">//オーバロードする関数を定義(シグネチャ)</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">test</span><span class=\"token punctuation\">(</span>val<span class=\"token operator\">:</span><span class=\"token builtin\">string</span><span class=\"token punctuation\">)</span><span class=\"token operator\">:</span><span class=\"token keyword\">void</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">test</span><span class=\"token punctuation\">(</span>num<span class=\"token operator\">:</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">)</span><span class=\"token operator\">:</span><span class=\"token keyword\">void</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">//関数の内容を実装する（引数の型はany）</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">test</span><span class=\"token punctuation\">(</span>value<span class=\"token operator\">:</span><span class=\"token builtin\">any</span><span class=\"token punctuation\">)</span><span class=\"token operator\">:</span><span class=\"token keyword\">void</span><span class=\"token punctuation\">{</span>\n    <span class=\"token comment\">//引数の型をチェックしそれぞれの処理を記述</span>\n    <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">typeof</span> value <span class=\"token operator\">===</span> <span class=\"token string\">'string'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n        <span class=\"token builtin\">console</span><span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'文字列が来た'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span><span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">typeof</span> value <span class=\"token operator\">===</span> <span class=\"token string\">'string'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n        <span class=\"token builtin\">console</span><span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'数字が来た'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token string\">'AAA'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// test(true);//booleanは定義されていないのでエラーになる</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>引数をUnionTypesで定義しても同じことができるけど何か違うのかな？</p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-typescript line-numbers\"><code class=\"language-typescript\">\n<span class=\"token comment\">//引数をUnionTypesで定義してみる</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">test</span><span class=\"token punctuation\">(</span>value<span class=\"token operator\">:</span><span class=\"token builtin\">string</span><span class=\"token operator\">|</span><span class=\"token builtin\">number</span><span class=\"token punctuation\">)</span><span class=\"token operator\">:</span><span class=\"token keyword\">void</span><span class=\"token punctuation\">{</span>\n    <span class=\"token comment\">//引数の型をチェックしそれぞれの処理を記述</span>\n    <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">typeof</span> value <span class=\"token operator\">===</span> <span class=\"token string\">'string'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n        <span class=\"token builtin\">console</span><span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'文字列が来た'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span><span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">typeof</span> value <span class=\"token operator\">===</span> <span class=\"token string\">'string'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n        <span class=\"token builtin\">console</span><span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'数字が来た'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token string\">'AAA'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// test(true);//booleanは定義されていないのでエラーになる</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>","excerpt":"関数の定義方法 functionによる定義 関数リテラルによる定義 アロー関数による定義 引数の定義方法あれこれ 引数を省略可能にする 通常引数は必須となっている、引数名の後に「?」をつけると省略可能になる。\n省略した引数にはundefined…","tableOfContents":"<ul>\n<li><a href=\"#%E9%96%A2%E6%95%B0%E3%81%AE%E5%AE%9A%E7%BE%A9%E6%96%B9%E6%B3%95\">関数の定義方法</a></li>\n<li><a href=\"#%E5%BC%95%E6%95%B0%E3%81%AE%E5%AE%9A%E7%BE%A9%E6%96%B9%E6%B3%95%E3%81%82%E3%82%8C%E3%81%93%E3%82%8C\">引数の定義方法あれこれ</a></li>\n<li><a href=\"#%E9%96%A2%E6%95%B0%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AD%E3%83%BC%E3%83%89\">関数のオーバーロード</a></li>\n</ul>","frontmatter":{"date":"2022-01-23","title":"TypeScript 関数の定義","tags":["TypeScript"],"path":"/TypeScript_20220123","subtitle":"いまさらながらTypeScriptに入門","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","backgroundColor":"#080808","images":{"fallback":{"src":"/static/668859633170c93c082316643856ab21/7e4b1/dummy.png","srcSet":"/static/668859633170c93c082316643856ab21/9eb1d/dummy.png 750w,\n/static/668859633170c93c082316643856ab21/7e4b1/dummy.png 953w","sizes":"100vw"},"sources":[{"srcSet":"/static/668859633170c93c082316643856ab21/e30f5/dummy.webp 750w,\n/static/668859633170c93c082316643856ab21/80686/dummy.webp 953w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.428121720881427}}}}},"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"title":"playwrightでブラウザのキャプチャ取得、録画","path":"/playwright_20250618","subtitle":"修正前後のエビデンス取得にどうぞ"}}},{"node":{"frontmatter":{"title":"TypeScript ジェネリクス","path":"/TypeScript_20220130","subtitle":"いまさらながらTypeScriptに入門"}}},{"node":{"frontmatter":{"title":"TypeScript クラスの定義","path":"/TypeScript_20220129","subtitle":"いまさらながらTypeScriptに入門"}}},{"node":{"frontmatter":{"title":"TypeScript 型変換を補助するユーティリティ型","path":"/TypeScript_20220120","subtitle":"いまさらながらTypeScriptに入門"}}},{"node":{"frontmatter":{"title":"TypeScript インターフェースでオブジェクト型の定義","path":"/TypeScript_20220110","subtitle":"いまさらながらTypeScriptに入門"}}}]}},"pageContext":{"pathSlug":"/TypeScript_20220123","tags":["TypeScript"],"prev":{"frontmatter":{"path":"/TypeScript_20220129","title":"TypeScript クラスの定義","tags":["TypeScript"],"date":"2022-01-29","subtitle":"いまさらながらTypeScriptに入門","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#080808","images":{"fallback":{"src":"/static/668859633170c93c082316643856ab21/7e4b1/dummy.png","srcSet":"/static/668859633170c93c082316643856ab21/3ce46/dummy.png 238w,\n/static/668859633170c93c082316643856ab21/6956a/dummy.png 477w,\n/static/668859633170c93c082316643856ab21/7e4b1/dummy.png 953w","sizes":"(min-width: 953px) 953px, 100vw"},"sources":[{"srcSet":"/static/668859633170c93c082316643856ab21/4f0f7/dummy.webp 238w,\n/static/668859633170c93c082316643856ab21/c8d1c/dummy.webp 477w,\n/static/668859633170c93c082316643856ab21/80686/dummy.webp 953w","type":"image/webp","sizes":"(min-width: 953px) 953px, 100vw"}]},"width":953,"height":408}}}}},"next":{"frontmatter":{"path":"/TypeScript_20220120","title":"TypeScript 型変換を補助するユーティリティ型","tags":["TypeScript"],"date":"2022-01-20","subtitle":"いまさらながらTypeScriptに入門","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#080808","images":{"fallback":{"src":"/static/668859633170c93c082316643856ab21/7e4b1/dummy.png","srcSet":"/static/668859633170c93c082316643856ab21/3ce46/dummy.png 238w,\n/static/668859633170c93c082316643856ab21/6956a/dummy.png 477w,\n/static/668859633170c93c082316643856ab21/7e4b1/dummy.png 953w","sizes":"(min-width: 953px) 953px, 100vw"},"sources":[{"srcSet":"/static/668859633170c93c082316643856ab21/4f0f7/dummy.webp 238w,\n/static/668859633170c93c082316643856ab21/c8d1c/dummy.webp 477w,\n/static/668859633170c93c082316643856ab21/80686/dummy.webp 953w","type":"image/webp","sizes":"(min-width: 953px) 953px, 100vw"}]},"width":953,"height":408}}}}}}},"staticQueryHashes":["1377811862","2705354941","3000541721"],"slicesMap":{}}