Typescript 1.8 modules: import all files from folder

Both module resolution strategies that tsc provides don’t support such a behavior. What your desired import statement

import * as mylib from "./source/";

is actually doing is to perform checks in this order:

1. (does package.json have a typings key? If so, import this file)
2. import * as mylib from "./source/index.ts";
3. import * as mylib from "./source/index.tsx";
4. import * as mylib from "./source/index.d.ts";

I’m assuming you’re using node-style module resolution here, which you probably are since it’s the recommended way. Check the typescript docs for more details on how module resolution is done in typescript.

Usually, what you’re trying to accomplish is by creating an index.d.ts file, which serves as the entry point from which you’re exporting the rest of your modules.
I’m using angular2 as an example:
Your common angular2 import looks like this:

import { Injectable } from '@angular/core'

core is just a directory that lives inside the @angular directory. Just like your source directory. However, in the core directory resides a index.d.ts file:

/**
 * @module
 * @description
 * Starting point to import all public core APIs.
 */
export * from './src/metadata';
export * from './src/util';
export * from './src/di';
....

Leave a Comment