Búsqueda de sitios web

javascript - No se pudo encontrar un archivo de declaración para el módulo 'vimeo'


Estoy utilizando TypeScript v^3.4.2, en una aplicación Express (^4.14.1), usando Node v11.3.0.

Cuando ejecuto mi compilación para TypeScript, obtengo el siguiente error:

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";

Estoy usando el cliente de la API de Vimeo para nodejs vimeo.js, versión 2.1.1.

He intentado ejecutar yarn add --dev @types/vimeo, pero desafortunadamente esa librería es para la otra librería de Vimeo, vimeo/player.js. Instalarla no sirve de nada.

He intentado seguir este artículo sobre cómo crear mi propia declaración de tipo personalizada.

Aquí está mi 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"]
}

Y he creado: /Users/me/Code/MyServer/types/vimeo/vimeo.d.ts, que contiene:

declare module vimeo {}

Cuando agrego eso, el error cambia a:

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'.

El artículo también sugiere agregar un archivo raíz global.d.ts con la misma definición, pero eso no tiene efecto.

Estoy desconcertado. Se agradecería cualquier ayuda.

(Este es mi bloque de scripts de package.json:)

 "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"
  },

Y aquí está mi tslint.json:

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

Respuesta #1

Si recuerdo correctamente, configurar "noImplicityAny": false, puede resolver el problema de los archivos de declaración... o puedes buscar algún .d.ts para ese módulo (o incluso crear el tuyo propio y hacer un pull request en GitHub)