Как сделать динамический импорт в typescript?

Статический импорт, все работает:

import {
  FastifyAdapter,
  NestFastifyApplication,
} from '@nestjs/platform-fastify';

Динамический импорт, не работает:

Первый вариант:

  const { FastifyAdapter, NestFastifyApplication } = await import(
    '@nestjs/platform-fastify'
  );

Второй вариант:

  const { FastifyAdapter } = await import('@nestjs/platform-fastify');
  const { NestFastifyApplication } = await import('@nestjs/platform-fastify');

Третий вариант:

  const { default: FastifyAdapter } = await import('@nestjs/platform-fastify');
  const { default: NestFastifyApplication } = await import('@nestjs/platform-fastify');

Получаю ошибку:

TS2339: Property 'NestFastifyApplication' does not exist on type '{ default: typeof import("L:/Test/nestjs-test/node_modules/@nestjs/platform-fastify/index"); FastifyAdapter: typeof FastifyAdapter; }'.

Как решить?

Update:

Функция:

async function fastifyBootstrap() {
  const { default: NestFastifyApplication, FastifyAdapter } = await import(
    '@nestjs/platform-fastify'
  );

  return await NestFactory.create<NestFastifyApplication>(
    AppModule,
    new FastifyAdapter(),
  );
}

Ответы (1 шт):

Автор решения: Qwertiy

Если прочитать ошибку, то должно быть так:

const { default: NestFastifyApplication, FastifyAdapter } = await import('@nestjs/platform-fastify');

Хотя этому соответствует другой статический импорт:

import NestFastifyApplication, { FastifyAdapter } from '@nestjs/platform-fastify';

TS2749: 'NestFastifyApplication' refers to a value, but is being used as a type here. Did you mean 'typeof NestFastifyApplication'?

Так типы есть только при компиляции - импортируй явно только тип в коде, а в динамический импорт пихай только реально существующие сущности:

import type { NestFastifyApplication } from '@nestjs/platform-fastify'

const { FastifyAdapter } = await import('@nestjs/platform-fastify')
→ Ссылка