如何使用深度相等(Angular 7)



VS代码自动导入:

import deepEqual = require('deep-equal');

不起作用:

错误TS1202:目标设定时无法使用导入分配ECMAScript模块。考虑使用"import*as ns from"mod",'从"mod"导入{a}','从"mod"导入d'或其他模块格式。

然后我试着这样做:

import * as deepEqual from 'deep-equal';

error TS2497:模块"path/@types/deep equal/index"解析为非模块实体,无法使用此构造导入。

像这样:

import {deepEqual} from 'deep-equal';

错误TS2305:模块'"C:\/Projects/ManagerServer/Src LoyaltyCoin.ManagerServer.Core/ManagerWeb/ClientApp/node_modules/@types/deep equal/index"'没有导出的成员"deepEqual"。

我不知道如何导入它。如果没有解决方案,请建议我使用另一个库来比较Angular 7的对象。

将脚本添加到angular.json文件:

scripts: [
"node_modules/deep_import/name.of.minified.file.js"
]

并在组件中声明一个变量:

import { Component } from '@angular/core';
....
declare const deepEqual: any;

或者,您可以找到它的打字员并安装它们,然后像导入任何其他依赖项一样导入它:

import * as deepEqual from 'deep-equal';

编辑只是语法问题。我建议您打开存储库并查看语法。正确的是

import deepEqual from 'deep-equal';

正如你在这个堆叠的第二个中看到的

您可以使用fast-deep-equal包。Angular将其作为对等依赖项包含,但不要忘记将其添加到常规依赖项中。此外,它是速度最快的对象比较器。

使用

import equal from 'fast-deep-equal';
equal(a,b); // returns truefalse

相关内容

  • 没有找到相关文章

最新更新