Javascript 如何在typescript中大致导入没有类型声明的.js库?

Javascript 如何在typescript中大致导入没有类型声明的.js库?,javascript,typescript,import,Javascript,Typescript,Import,我正在将Vue.js与cli一起使用,并在Typescript上启动项目。除了我必须使用js库的情况外,我对它没有任何问题。我知道这一点,并在可能的情况下使用它。但当js库是新的、旧的或不受欢迎的,并且没有类型定义时,有一个大问题。我花了很多时间寻找解决方案,似乎只有很少的选择: 使用现有类型,即 编写自己的*.d.ts文件 按原样使用显式js导入,而不使用正确的类型定义和intellisense 在我的情况下,第一个选项不可用。第二,非常依赖于库,库可能有难以声明的结构。 所以,如果我只想

我正在将Vue.js与cli一起使用,并在Typescript上启动项目。除了我必须使用js库的情况外,我对它没有任何问题。我知道这一点,并在可能的情况下使用它。但当js库是新的、旧的或不受欢迎的,并且没有类型定义时,有一个大问题。我花了很多时间寻找解决方案,似乎只有很少的选择:

  • 使用现有类型,即
  • 编写自己的*.d.ts文件
  • 按原样使用显式js导入,而不使用正确的类型定义和intellisense
在我的情况下,第一个选项不可用。第二,非常依赖于库,库可能有难以声明的结构。 所以,如果我只想按原样导入js库,我能做什么? 我尝试了以下方法:

import { } from 'velocity-animate';
import Velocity from 'velocity-animate';
import { Velocity } from 'velocity-animate';
import Velocity from '../../node_modules/velocity-animate';
import * as Velocity from 'velocity-animate';
const Velocity = require('velocity-animate');
const Velocity: any = require('velocity-animate');
const Velocity = require('../../node_modules/velocity-animate/velocity.js');
此外,还尝试使用上述导入添加不同的变体和组合,如:

declare var Velocity: any;
declare module 'velocity-animate';
等等,没有什么,我只是在控制台中有一些错误,比如:

未捕获引用错误:未定义速度

这不是我的代码输入错误,在常规js中,相同的代码可以很好地工作。

我怀疑的另一个问题是Tcompiler和他的规则/设置。这是我的:

{
  "compilerOptions": {
    "target": "es2015",
    "module": "es2015",
    "strict": true,
    "allowJs": true,
    "jsx": "preserve",
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "baseUrl": ".",
    "noImplicitAny": false,
    "types": [
      "node",
      "googlemaps"
    ],
    "paths": {
      "@/*": [
        "src/*"
      ]
    }
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.vue",
    "tests/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}
有人能解释一下我做错了什么吗?为什么这么简单的事情会引起这么大的问题

未捕获引用错误:未定义速度

这是一个运行时错误,不是编译时类型脚本错误

修理
确保
Velocity
global可用。e、 g.添加:在应用程序代码运行之前作为
脚本
标记。

上述方法欺骗键入系统,因此这不会在编译时导致类型错误,而
未捕获引用错误:未定义速度
是运行时错误<代码>速度全局变量应该存在,但不存在。不可能说出问题发生在哪里。你是唯一能做到的人。错误输出包含调用堆栈。检查一下。Velocity库可能需要对网页包配置进行微调,这在问题中没有提到。无论如何,这不是类型声明的问题。我这样做了,它是有效的,但不是生产构建的最佳选择。除了使用import或require()之外,还有其他方法可以像这样导入js吗?有什么想法吗?