Ken*_*ood 3 shared-libraries typescript nestjs
我构建了一个打字稿库项目。并使用公共包中的一些类。
假设有一个简单的函数来测试它是否是 BadRequestException
import { BadRequestException } from "@nestjs/common";
export function test(error) {
let a = error;
let b = BadRequestException;
console.log(a instanceof b);
}
Run Code Online (Sandbox Code Playgroud)
从另一个正常项目构建并导入这个shared-lib库之后,我像这样调用
import { BadRequestException } from "@nestjs/common";
import { test } from 'shared-lib';
test(new BadRequestException('it is a test error'));
Run Code Online (Sandbox Code Playgroud)
在我的整个过程中(应该是),a instance b在测试函数中应该等于true,但是,我得到了false
库项目中使用的与第二个项目中使用的是否BadRequestException不同,即使它们都是从 导入的"@nestjs/common"?
在Github上传了一个演示项目
instanceof 检查构造函数是否相同。问题是您的代码从库中的代码获取了自己的构造函数副本(因为事情就是这样,这不是您的错),因此它们不再是同一个实例。
不过,构造函数仍然共享相同的名称:
error.constructor.name === BadRequestException.prototype.constructor.name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1886 次 |
| 最近记录: |