我收到以下linting错误:var scopeFactory = services
.BuildServiceProvider()
.GetRequiredService<IServiceScopeFactory>();
var scope = scopeFactory.CreateScope();
var provider = scope.ServiceProvider;
var dbContext = provider.GetRequiredService<ApplicationDbContext>();
var graphSdkHelper = provider.GetRequiredService<IGraphSDKHelper>();
var memoryCache = provider.GetRequiredService<IMemoryCache>();
...
下面有什么问题?
Unconditional use of conditional expression for default assignment
如果定义了myOverride,我想使用myOverride,如果没有定义,我想使用env var (myOverride) ? myOverride : MAGIC_HOST,
。
答案 0 :(得分:2)
答案 1 :(得分:1)
显然您正在使用ESLint(因为该错误是ESLint)错误。这是因为no-unneeded-ternary
rule旨在标记不必要的使用条件运算符(遗憾的是,他们称之为“三元”)*。来自链接的文档:
另一个常见的错误是使用单个变量作为条件测试和结果。在这种情况下,逻辑OR可用于提供相同的功能。这是一个例子:
// Bad var foo = bar ? bar : 1; // Good var foo = bar || 1;
因此规则告诉您改为使用myOverride || MAGIC_HOST
。
你没有拥有,你所显示的代码不是错误。只是它没有通过那个ESLint规则。
* “遗憾的是,他们称之为'三元'” - 条件运算符是一个三元运算符(一个接受三个操作数的运算符,就像{{1}一样是一个布尔运算符 - 一个接受两个操作数的运算符)。现在, 是唯一的三元运算符JavaScript。但随着语言的发展,这并不一定总是如此。它正确地称为conditional operator。