Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Typescript doesn't recognize d.ts modules

Tags:

typescript

Trying to use typescript with Koa.

koa-respond and @koa/cors do not have @types packages so I added a file ambient-types.d.ts in my src with these declarations

declare module 'koa-respond'
declare module '@koa/cors'

However I still get these errors from ts

Try `npm install @types/koa__cors` if it exists or add a new declaration (.d.ts) file containing `declare module 'koa__cors';`
src/server.ts(7,26): error TS7016: Could not find a declaration file for module 'koa-respond'. '/home/hayk/projects/learning/koa/koala/backend/node_modules/koa-respond/lib/koa-respond.js' implicitly has an 'any' type.
  Try `npm install @types/koa-respond` if it exists or add a new declaration (.d.ts) file containing `declare module 'koa-respond';`

This is my tsconfig.json

{
"compilerOptions": {
    "module": "commonjs",
    "target": "es2017",
    "noImplicitAny": true,
    "outDir": "./dist",
    "sourceMap": true
},
"include": [
    "./src/**/*"
]
}

And I run like this nodemon --watch 'src/**/*' -e ts,tsx --exec 'ts-node' ./index.ts

like image 320
Hayk Safaryan Avatar asked Dec 24 '22 05:12

Hayk Safaryan


1 Answers

According to my testing, you need to specify the --files option to ts-node to force it to load all the files matching the include setting in your tsconfig.json, otherwise ambient-types.d.ts never gets loaded.

nodemon --watch 'src/**/*' -e ts,tsx --exec 'ts-node --files' ./index.ts
like image 122
Matt McCutchen Avatar answered Jan 05 '23 10:01

Matt McCutchen