I want to switch from JavaScript to TypeScript to help with code management as our project gets larger. We utilize, however, lots of libraries as amd Modules, which we do no
Create a file in lib
called errorInfoHandler.d.ts
. There, write:
var noTypeInfoYet: any; // any var name here really
export = noTypeInfoYet;
Now the alert
import will succeed and be of type any
.
Ran into that that problem in 2020, and found an easy solution:
Create a decs.d.ts file in the root of your TS project.
Place this declaration:
declare module 'lib/errorInfoHandler';
This eliminates the error in my case. I'm using TypeScript 3.9.7
A combination of the 2 answers given here worked for me.
//errorInfoHandler.d.ts
declare module "lib/errorInfoHandler" {
var noTypeInfoYet: any; // any var name here really
export = noTypeInfoYet;
}
I'm still new to TypeScript but it looks as if this is just a way to tell TypeScript to leave off by exporting a dummy variable with no type information on it.
EDIT
It has been noted in the comments for this answer that you can achieve the same result by simply declaring:
//errorInfoHandler.d.ts
declare module "*";
See the github comment here.
Either create your own definition file with following content:
declare module "lib/errorInfoHandler" {}
And reference this file where you want to use the import.
Or add the following line to the top of your file:
/// <amd-dependency path="lib/errorInfoHandler">
Note: I do not know if the latter still works, it's how I initially worked with missing AMD dependencies. Please also note that with this approach you will not have IntelliSense for that file.
Typically if you just want to need a temporary-faster-solution, that could be done by defining a new index.d.ts
in the root of the project folder, then make a module name like described inside package.json
file
for example
// somefile.ts
import Foo from '@awesome/my-module'
// index.d.ts on @awesome/my-module
declare module '@awesome/my-module' {
const bind: any;
export default bind;
}