【问题标题】:html-validator module with typescript es6 import syntax带有 typescript es6 导入语法的 html-validator 模块
【发布时间】:2019-07-06 02:14:10
【问题描述】:

我想用 es6 语法导入 html-validator 模块。

import validator from 'html-validator';

我收到此错误:

找不到模块“html-validator”的声明文件。 '.../node_modules/html-validator/index.js' 隐含地具有“任何”类型。尝试npm install @types/html-validator(如果存在)或添加包含declare module 'html-validator'; 的新声明(.d.ts)文件

所以@types/html-validator 不存在。

我已经在 .ds.ts 文件中声明了模块:

declare module 'html-validator' {
  export =  validator;
}

我又遇到了一个错误:

扩充中的模块名称无效。模块“html-validator”解析为“.../node_modules/html-validator/index.js”处的无类型模块,无法扩充

这是我的tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "lib": ["es6","dom"],
    "outDir": "build",
    "rootDir": "src",
    "strict": true,
    "esModuleInterop": true,
    "resolveJsonModule": true
  }
}

这很好用。

 const validator = require('html-validator');

但我更喜欢 es6 版本

【问题讨论】:

    标签: typescript npm ecmascript-6 html-validation


    【解决方案1】:

    据我所知,我在npm 上看不到像@types/html-validator 这样的包。

    所以,我们必须自己声明它的类型。

    即使是 html-validatordocumentation 导入方式与下面的方式相同。

    const validator = require('html-validator');
    

    【讨论】:

    • 我知道@types/html-validator 包不存在。我已经提到过了。而且我知道在文档内部它与旧版本的导入一起使用。我只是想确定没有其他解决方案。
    【解决方案2】:

    可能是其中一种对你有用:

    import { validator } from "html-validator";
    

    import { html-validator } from "html-validator";
    

    【讨论】:

    • 这也不好用import * as validator from "html-validator"
    猜你喜欢
    • 2015-08-13
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 2018-02-06
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多