Під час розробки веб-додатків з використанням Nuxt.js може виникнути потреба у генерації та використанні власних типів даних у плагінах. Один із широко вживаних методів досягнення цього – використання генерації типів у модулі та їх подальше використання у плагінах. У цій статті ми розглянемо, як реалізувати цей підхід та надамо приклади.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// module.ts export default defineNuxtModule({ meta: { // ... }, defaults: { // ... }, setup(_options, nuxt) { addTypeTemplate({ filename: 'foo-types.d.ts', getContents: () => `type TypeForGeneric = Record<string, unknown>`, }) nuxt.hook('prepare:types', async ({ references }) => { references.push({ path: resolve(nuxt.options.buildDir, 'types/foo-types.d.ts') }) }) addPlugin(resolve('./runtime/plugin')) }, }) |
1 2 3 4 5 6 7 8 9 10 11 |
// runtime/plugin.ts import { defineNuxtPlugin } from '#app' import type { TypeForGeneric } from '' // <= де я можу імпортувати його з? export default defineNuxtPlugin((nuxtApp) => { const fooWithTypes = foo<TypeForGeneric>() return { provide: { fooWithTypes, }, } }) |