How to import images in Typescript
Normally, when Typescript cannot find something we get this error:
```
Cannot find module [your module] or its corresponding type declarations ts(2307)
```
Now let's see how we can fix this, with a simple example.
Given the following folder structure:
```
│── src
│ ├── resources
│ │ ├── ts
│ │ │ ├── **/*.ts
│ │ ├── images
│ │ │ ├── logo.svg
├── ...
├── tsconfig.json
```
In order to be able to achieve something like this:
```
import Logo from '[path]/images/logo.svg'
```
without any ** Typescript errors**, we need to follow these steps:
### 1.Make sure that the `images` folder is "reachable" by Typescript.
Adding this inside **`tsconfig.json`** will do the trick:
```js
{
"include": [
...
"resources/**/*.ts",
],
}
```
A configuration like this one **will not do**:
```js
{
"include": [
"resources/ts/**/*.ts",
],
}
```
Because **images/** is not included in **ts/** and we don't have any other folders declared, so Typescript can't "reach" it.
### 2.Let Typescript know about the `.svg` type in that folder.
In the root of the images folder create a file called **`index.d.ts`**:
```
...
├── resources
│ ├── ts
│ │ ├── **/*.ts
│ ├── images
│ │ ├── logo.svg
│ │ ├── index.d.ts
...
```
With the following contents:
```ts
declare module '*.svg' {
const value: any;
export = value;
}
```
Now you should be good to go.
Denisa Halmaghi
07 Dec 2021
« Back to post