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

Nas*_*ova 1 compare npm typescript angular

VS代码自动导入:

import deepEqual = require('deep-equal');
Run Code Online (Sandbox Code Playgroud)

不起作用:

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

然后我试着这样做:

import * as deepEqual from 'deep-equal';
Run Code Online (Sandbox Code Playgroud)

错误TS2497:模块'"path/@ types/deep-equal/index"'解析为非模块实体,无法使用此结构导入.

像这样:

import {deepEqual} from 'deep-equal';
Run Code Online (Sandbox Code Playgroud)

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

我没有想法如何导入这个.如果没有解决方案,请建议我另一个库来比较Angular 7的对象.

小智 7

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

scripts: [
  "node_modules/deep_import/name.of.minified.file.js"
]
Run Code Online (Sandbox Code Playgroud)

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

import { Component } from '@angular/core';
....
declare const deepEqual: any;
Run Code Online (Sandbox Code Playgroud)

或者,你可以找到分型为它并安装它们,然后导入像任何其他依赖性:

import * as deepEqual from 'deep-equal';
Run Code Online (Sandbox Code Playgroud)

编辑只是一个语法问题.我建议你打开存储库并查看语法.正确的是

import deepEqual from 'deep-equal';
Run Code Online (Sandbox Code Playgroud)

正如你在stackbltiz中看到的那样