0

我正在使用formvalidation来自 formvalidation.io 的包,它不是通过 npm 安装的,并且遵循非标准文件结构(source):

formvalidation/
|
├── @types          // Consists of TypeScript definition types
|   |
|   └── formvalidation
|       └── global.d.ts // Uses with the global UMD package (dist/js)
|       └── index.d.ts  // Uses with the ES6 package (dist/es6)
|
├── dist            // Consists of generated files from src
|   |
|   ├── amd         // AMD package
|   |
│   ├── css         // Can be used in browser
│   │   └── formValidation(.min).css
|   |
|   ├── es6         // Generated from src/js and can be used with ES6 module
│   │   ├── ...
│   │   ├── core
│   │   ├── locales
│   │   ├── plugins
│   │   ├── validators
│   │   └── index.js
|   |
│   └── js          // Can be used in browser
|       |
│       ├── locales     // The translation packages
│       │   ├── de_DE(.min).js
│       │   ├── en_US(.min).js
│       │   └── ...
|       |
│       ├── plugins
│       │   ├── Bootstrap(.min).js
│       │   ├── Bootstrap3(.min).js
│       │   └── ...
|       |
│       ├── FormValidation.full(.min).js
│       └── FormValidation(.min).js
│
└── src             // Source files
    |
    ├── css         // CSS source files made in SCSS
    │   ├── plugins
    │   │   ├── _bootstrap.scss
    │   │   ├── _bootstrap3.scss
    │   │   └── ...
    │   │
    │   ├── _core.scss
    │   └── index.scss
    │
    └── js          // JavaScript source files made in Typescript
        ├── ...
        ├── core
        ├── locales
        ├── plugins
        ├── validators
        └── index.ts

我试图让它与完整的 TypeScript 支持一起工作,但我遇到了一些问题:

导入(缩小)js 文件,这是目前我发现的最好的方法。我只是import "../../vendor/formvalidation-v1.8.1/dist/js/FormValidation.min"用来加载已经缩小的版本。我的 IDE 立即获取定义的类型,并且完整的语法完成正在工作。但它比直接导入 ES6 模块要大一些。所以我尝试了:

import formValidation from '../../vendor/formvalidation-v1.8.1/dist/es6/core';

这也适用于较小的更改:我必须更改FormValidation.formValidation()formValidation(). 我怀疑这就是为什么 TS 现在将所有内容都显示为any-typed 的原因:TS 定义都适用于FormValidation命名空间。

我也尝试src/*.ts直接导入文件,但 TS 编译器发现代码中有错误,我根本无法编译(我的tsconfig似乎比库作者使用的更严格)

是否可以将 ES6 版本的代码与 TypeScript 定义一起使用,或者让编译器对formvalidation-v1.8.1/src目录中的任何错误关闭?

4

0 回答 0