TypeScriptでVue.jpのLateinitを実装する

TypeScriptでVue.jpのLateinitを実装する:


背景

TypeScript+vue-class-component環境の場合

createdやmountedなどを使った時など

stateに一旦nullなどで初期化する必要があります。この時、本来nullが有り得ない場合でも型定義でnullなどを許容せざるを得ません。これを改善するためにメソッドを定義しました。

export const LateInit = createDecorator((options, key) => { 
  options.mixins = [ 
    ...options.mixins || [], 
    { 
      data(this: Vue) { 
        return { 
          [key]: 'NOT_INITIALIZED' 
        } 
      } 
    } 
  ] 
} 

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)