# In TypeScript project

# Type declarations

You may see an error "Cannot Import Module" due to missing type declarations when you try to import a .md file.

In an arbitary d.ts file, declare about imported content.

# Frontmatter attributes

declare module '*.md' {
  const attributes: Record<string, unknown>;
  export { attributes };
}

This is the most optimistic declarations. As your project expects, *.md could be more isolated, attributes could be more detailed to avoid unpleasant casting in an importer's end.

# HTML

declare module '*.md' {
  const html: string;
  export { html };
}

# React

When passing a component to mount, give a generic for React.VFC like React.VFC<{ MyComponent: TypeOfMyComponent }>.

declare module '*.md' {
  import React from 'react';
  const react: React.VFC;
  export { react };
}

# Vue

declare module '*.md' {
  import { ComponentOptions } from 'vue';
  const vue: ComponentOptions;
  export { vue };
}