Cannot Load Custom Definition File in Repository
See original GitHub issueTypeScript Version: 2.8.1
Search Terms: Definition File, Ambient type Detail I am importing a JavaScript library that doesn’t have any definition file. I want to create a custom definition file that I place in my repository. I want TypeScript to read this definition file.
I have tried many combination of tsconfig.json (typeRoot, include, path, baseUrl, etc.) Without being successful. I also moved the definition folder under src
, and renamed the definition file to index.d.ts (inside a folder with the name of the library) without any success.
Code Small complete repro here: https://github.com/MrDesjardins/importdefinitionfiles
// main.ts:
import MessageFormat from "messageformat"; // Doesn't have type
// messageformat.d.ts:
declare module messageformat {
export type Msg = (params: {}) => string;
export interface MessageFormat {
new(message: string): any;
compile: (messageSource: string) => Msg;
}
}
Expected behavior: TypeScript to find the definition file and to use it without having a compilation error.
Actual behavior: Error message
Could not find a declaration file for module 'messageformat'. '/Users/pdesjardins/code/perso/importdefinitionfiles/node_modules/messageformat/lib/messageformat.js' implicitly has an 'any' type.
Try `npm install @types/messageformat` if it exists or add a new declaration (.d.ts) file containing `declare module 'messageformat';`
1 import MessageFormat from "messageformat";
Playground Link: https://github.com/MrDesjardins/importdefinitionfiles
Related Issues:
Issue Analytics
- State:
- Created 5 years ago
- Comments:11 (8 by maintainers)
Top GitHub Comments
You need quotes around the name:
The error message tells you this:
In the future please use StackOverflow for questions.
In fact we can check its declaration to see if it’s written as
declare module foo
.or (if we see
declare module
)