

以下のようなコードを書いています。

[code]

    export default function hogeStore()  {
      const getters = {
        get huga() {
        }
      }
    
      return { getters }
    }
    
[/code]

利用側で `hogeStore().getters.huga` とすると

[code]

    Property 'getters' does not exist on type 'unknown'.
    
[/code]

というエラーが出ます。

正しく型をつけるにはどのように書けばよいでしょうか。  
よろしくお願いいたします。


CC BY-SA 4.0
2020-09-10T23:50:39.297
70302
2020-09-11T13:35:26.233
2020-09-11T13:35:26.233
32986
10865
question
typescript
TypeScript の型の付け方について


あなたのコードではローカルな定数`getters`を作成していますが、その定数は使用しないまま戻り値が何もない状態で関数`hogeStore()`が終了しています。戻り値を返していないので、その値は`undefined`、`undefined`には`getters`なんてプロパティはありませんからエラーになっています。

戻り値を返せば、その戻り値を利用できます。

[code]

    export default function hogeStore() {
      const getters = {
        get huga() {
           ...
        }
      }
      return getters; //<-
    }
    
    var result = hogeStore().huga;
    
[/code]

どうしても、`hogeStore().getters.huga`という風に呼び出しがしたいなら、

[code]

    export default function hogeStore() {
      const getters = {
        get huga() {
           ...
        }
      }
      return {getters: getters}; //<-
    }
    
    var result = hogeStore().getters.huga;
    
[/code]

などと書けるでしょう。


CC BY-SA 4.0
2020-09-11T00:58:19.450
70305
2020-09-11T00:58:19.450
13972
70302
answer