えぐろぐ

https://twitter.com/eggpogg

Nuxt x TypeScript で拡張関数の設定

TypeScriptで拡張関数を記述できることを知ったのでNuxtに組み込んでみた kakkoyakakko2.hatenablog.com

1度でも読み込まれれば良いので、  今回はPluginとして読み込ませるようにした

拡張ファイルを記述する 今回は1つだけだけど、複数増えるときはファイルを分けたほうがいいかも。

// ./plugins/extenstions.ts

export {}

declare global {
  interface Number {
    separatePrice: () => string
  }
}

Number.prototype.price = function(): string {
  return `¥${this}`
}

プラグインを読み込ませる

// ./nuxt.config.js

plugins: [ "~plugins/extenstions" ]

使うときは値を変数に代入後に使用できる

// ./page/index.vue

mounted() {
  const num = 100
  console.log(num.price()) // ¥100
},

自分で作ったカスタムクラスの場合は、それぞれのファイルで記述すればいいけど  プリミティブラッパーオブジェクト やDate , Array , Map とかのクラスはこっちで一元管理したほうが良さそう。

複数プロジェクトで使い回せるようにするにはnpm として管理だけど...それはのちのち...