小编les*_*450的帖子

当检测到循环依赖时如何使 ng build 命令出错

我正在使用 Angular 9,并且只要在构建目标中检测到循环依赖项,我希望我的构建就会失败。

当我使用 Angular 6 及更低版本时,我只是将循环依赖 Webkack 插件(https://www.npmjs.com/package/circular-dependency-plugin)添加到我的 webpack 配置中,并且运行良好。但是,在 Angular 9 中,我无权访问用于构建目标的构建器的 wepack 配置。我不想使用 custom:webpack 构建器。

你知道如何实现吗?我知道文件showCircularDependencies中的密钥angular.json,但它只是用于打开和关闭警告。

circular-dependency angular-cli

7
推荐指数
1
解决办法
2373
查看次数

TypeScript 中的类型谓词

这是 TypeScript 中缺乏的功能还是经过深思熟虑的,如果条件逻辑被包装到单独的函数中,TS 编译器无法推断(然后缩小)参数的类型?我想到的是 TS 编译器在这种情况下给我的错误:

\n\n
function isString(s) {\n  return typeof s === 'string';\n}\n\nfunction toUpperCase(x: unknown) {\n  if(isString(x)) {\n    x.toUpperCase(); // \xe2\x9a\xa1\xef\xb8\x8f x is still of type unknown\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,如果我去掉该isString函数并将其逻辑内联到if语句中,那么 TS 编译器就可以很好地了解该类型。

\n\n

我知道我可以使用as string类型谓词来转换类型,并is string在函数中使用类型注释isString。但我刚刚开始思考——为什么TS不能缩小类型了x

\n

typescript typeguards

5
推荐指数
1
解决办法
2604
查看次数