How to add custom “typings” in typescript 2.0 / 3.0

You can create local custom typings just for your project, where you can declare types for JS libraries. For that, you need to:

  1. Create directory structure to keep your type declaration files so that your directory structure looks similar to this:

     .
     ├── custom_typings
     │   └── some-js-lib
     │       └── index.d.ts
     └── tsconfig.json
    
  2. In the index.d.ts file, add a declaration for your JS library:

     declare module 'some-js-lib' {
       export function hello(world: string): void
     }
    
  3. (Optional: skip if you have TypeScript >= 4.x) Add a reference to this type declaration in the compilerOptions section of your tsconfig.json:

     {
       "compilerOptions": {
         ...
         "typeRoots": ["./node_modules/@types", "./custom_typings"]
       },
       ...
     }
    
  4. Use the declared module in your code:

     import { hello } from 'some-js-lib'
    
     hello('world!')
    

Leave a Comment