Description
I am using the noImplicitAny
switch, but I'm not sure whether that matters other than not showing that the declaration file is not found as quickly. However I should be able to use the noImplicitAny
switch by creating the required declaration file locally.
My testing seems to show that a local declaration file for a non-scoped package is found, but that one for a scoped package (@<scope>/name) is not.
The test sample I've attached uses the @feathersjs/express
scoped package to demonstrate the issue.
Note that the feathersjs__express.d.ts
file below does contain the declare module 'feathersjs__express';
as specified in the error message.
Also note that the contents of feathersjs__express.d.ts
are basically identical to the contents of feathers-mongoose.d.ts
which is correctly found (and when remove produces a similar TS7016 error.
TypeScript Version: 2.9.0-dev.20180506
Search Terms:
TS7016: Could not find a declaration file for module
Code
├── package.json
├── src
│ ├── feathersjs__express.d.ts
│ ├── feathers-mongoose.d.ts
│ └── index.ts
├── tsconfig.json
index.ts
import { express } from '@feathersjs/express';
import { service } from 'feathers-mongoose';
feathers-mongoose.d.ts
declare module 'feathers-mongoose'
{
function init(options: string): any;
namespace init
{
export let service: (options: string) => any;
}
export = init;
}
feathersjs__express.d.ts
declare module 'feathersjs__express'
{
function feathersExpress(feathersApp: string): any;
namespace feathersExpress
{
export let express: (feathersApp: string) => any;
}
export = feathersExpress;
}
Zip file containing the sources (as in the tree above)
ts_bug_src.zip
Expected behavior:
No errors
Actual behavior:
src/index.ts:1:25 - error TS7016: Could not find a declaration file for module '@feathersjs/express'. '/home/mjl/Projects/riff/test/node_modules/@feathersjs/express/lib/index.js' implicitly has an 'any' type.
Try `npm install @types/feathersjs__express` if it exists or add a new declaration (.d.ts) file containing `declare module 'feathersjs__express';`
1 import { express } from '@feathersjs/express';
~~~~~~~~~~~~~~~~~~~~~
Playground Link:
Related Issues:
- noimplicitany and module without typings #13348 noimplicitany and module without typings
- Error when importing untyped JS modules #15031 Error when importing untyped JS modules
- Validate discrepancies in project tests #133 dialog and noImplicitAny
- bug: TS7016 Could not find a declaration file for module #14379 bug: TS7016 Could not find a declaration file for module