{
    "componentChunkName": "component---src-templates-blog-post-js",
    "path": "/20-10-18-record-type-on-typescript/",
    "result": {"data":{"site":{"siteMetadata":{"title":"irrationnelle","author":"irrationnelle","siteUrl":"https://dev.rase.blog","comment":{"disqusShortName":"","utterances":"irrationnelle/devlog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"7cc53745-372f-5f84-bffb-56a05fecab70","excerpt":"배열을 받아서  메소드를 이용해서 동적 key 값을 가지는 오브젝트로 변환하려고 하면 타입 에러가 곧잘 뜬다.  메소드의 accumulator 뿐만 아니라 빈 오브젝트를 선언하고 반복문 내부에서 동적 key 를 부여할 때도 마찬가지. 결국  타입을 쓰거나  어노테이션을 쓰거나 해야하는데 둘 다 찝찝하다면  타입을 사용하자. hackkerrank 문제를 풀면서 실제로 사용했던 코드를 예제로 가져왔다.  에서 K는 key 의 타입이고, V는 value 의 타입이다. 즉 위 예제에서는 key…","html":"<p>배열을 받아서 <code class=\"language-text\">reduce</code> 메소드를 이용해서 동적 key 값을 가지는 오브젝트로 변환하려고 하면 타입 에러가 곧잘 뜬다. <code class=\"language-text\">reduce</code> 메소드의 accumulator 뿐만 아니라 빈 오브젝트를 선언하고 반복문 내부에서 동적 key 를 부여할 때도 마찬가지.</p>\n<p>결국 <code class=\"language-text\">any</code> 타입을 쓰거나 <code class=\"language-text\">@ts-ignore</code> 어노테이션을 쓰거나 해야하는데 둘 다 찝찝하다면 <code class=\"language-text\">Record</code> 타입을 사용하자.</p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token keyword\">const</span> createCounterObj <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>targetArr<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> Record<span class=\"token operator\">&lt;</span><span class=\"token builtin\">string</span><span class=\"token punctuation\">,</span> <span class=\"token builtin\">number</span><span class=\"token operator\">></span> <span class=\"token operator\">=></span>\n  targetArr<span class=\"token punctuation\">.</span><span class=\"token function\">reduce</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>acc<span class=\"token operator\">:</span> Record<span class=\"token operator\">&lt;</span><span class=\"token builtin\">string</span><span class=\"token punctuation\">,</span> <span class=\"token builtin\">number</span><span class=\"token operator\">></span><span class=\"token punctuation\">,</span> curr<span class=\"token operator\">:</span> <span class=\"token builtin\">number</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>acc<span class=\"token punctuation\">[</span>curr<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      acc<span class=\"token punctuation\">[</span>curr<span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">return</span> acc<span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n    acc<span class=\"token punctuation\">[</span>curr<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span> acc<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>hackkerrank 문제를 풀면서 실제로 사용했던 코드를 예제로 가져왔다.</p>\n<p><code class=\"language-text\">Record&lt;K, V></code> 에서 K는 key 의 타입이고, V는 value 의 타입이다. 즉 위 예제에서는 key 는 동적인 string 값을 가지고 value 는 number 타입이 된다.</p>","frontmatter":{"title":"Typecript 의 Record 타입","date":"October 18, 2020"}}},"pageContext":{"slug":"/20-10-18-record-type-on-typescript/","previous":{"fields":{"slug":"/20-10-17-cypress-helper/"},"frontmatter":{"title":"Typescript 환경에서 Cypress helper 함수 만들기","category":"e2e","draft":false}},"next":{"fields":{"slug":"/21-01-03-unavailable-import-on-typescript/"},"frontmatter":{"title":"Typecript 에서 Cannot use import statement outside a module 에러 해결","category":"typescript","draft":false}}}},
    "staticQueryHashes": ["3128451518","3474900066"]}