javascript - Kunde inte hitta en deklarationsfil för modul 'vimeo'


Jag använder TypeScript v^3.4.2, i en Express-app (^4.14.1), med Node v11.3.0.

När jag kör min build för TypeScript får jag följande fel:

Could not find a declaration file for module 'vimeo'. '/Users/me/Code/MyServer/node_modules/vimeo/index.js' implicitly has an 'any' type.
  Try `npm install @types/vimeo` if it exists or add a new declaration (.d.ts) file containing `declare module 'vimeo';`

1 import { Vimeo } from "vimeo";

Jag använder Vimeo API-klienten för Node.js vimeo.js, version 2.1.1.

Jag har försökt köra yarn add --dev @types/vimeo, men tyvärr är det biblioteket för det andra Vimeo-biblioteket, vimeo/player.js. Att installera det är till ingen nytta.

Jag har försökt att följa den här artikeln om att skapa min egen anpassade typdeklaration.

Här är min tsconfig.json:

{
  "compilerOptions": {
    "module": "commonjs",
    "esModuleInterop": true,
    "target": "es6",
    "noImplicitAny": true,
    "moduleResolution": "node",
    "sourceMap": true,
    "outDir": "dist",
    "baseUrl": ".",
    "paths": {
      "*": ["node_modules/*"]
    },
    "typeRoots": ["./types", "./node_modules/@types"]
  },
  "include": ["src/**/*", "controllers/**/*", "routes/**/*", "models/**/*"],
  "exclude": ["node_modules", "types"]
}

Och jag har skapat: /Users/me/Code/MyServer/types/vimeo/vimeo.d.ts, som innehåller:

declare module vimeo {}

När jag lägger till att felet ändras till:

yarn run v1.15.2
yarn build
tslint -c tslint.json -p tsconfig.json --fix
tsc
error TS2688: Cannot find type definition file for 'vimeo'.

Artikeln föreslår också att man lägger till en rot global.d.ts med samma definition i den, men det har ingen effekt.

Jag är förbryllad. All hjälp skulle uppskattas.

(Detta är min package.json scripts-block:)

 "main": "dist/app.js",
  "scripts": {
    "prebuild": "tslint -c tslint.json -p tsconfig.json --fix",
    "build": "tsc",
    "prestart": "yarn build",
    "start": "babel-node dist/app.js --presets es2015",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

Och här är min tslint.json:

{
  "defaultSeverity": "error",
  "extends": ["tslint:recommended"],
  "jsRules": {},
  "rules": {
    "trailing-comma": [false],
    "curly": [true, "ignore-same-line"],
    "ban-types": false
  },
  "rulesDirectory": []
}

Svar #1

Om jag minns rätt kan det lösa problemet med deklarationsfiler genom att sätta "noImplicityAny": false, ... eller så kan du leta efter någon .d.ts för det moduler (eller till och med skapa din egen och göra en pull request på GitHub)