回答編集履歴
1
プロパティの存在保証を定義する構文を追加
    
        answer	
    CHANGED
    
    | @@ -18,4 +18,19 @@ | |
| 18 18 | 
             
            [0, 1, 2].forEach((index: number) => {
         | 
| 19 19 | 
             
              functions[`${index}`]();
         | 
| 20 20 | 
             
            });
         | 
| 21 | 
            -
            ```
         | 
| 21 | 
            +
            ```
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            上記でいけない時は、
         | 
| 24 | 
            +
            **プロパティの存在保証**がされていないためだと思われるので、
         | 
| 25 | 
            +
            呼び出しを下記のようにしましょう。
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            ```typescript
         | 
| 28 | 
            +
            [0, 1, 2].forEach((index: number) => {
         | 
| 29 | 
            +
              if (typeof functions[`${index}`] === 'function') {
         | 
| 30 | 
            +
                functions[`${index}`]();
         | 
| 31 | 
            +
              }
         | 
| 32 | 
            +
            });
         | 
| 33 | 
            +
            ```
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            要は、TypeScriptは、静的型付けのため、プロパティの存在保証などは、
         | 
| 36 | 
            +
            自身で明記する必要があるということです。
         | 
