问题标签 [strictnullchecks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 如何在角度 4 中实现 strictNullChecks
我试图strictNullChecks
在 Angular 4 应用程序中实现。
我刚刚添加 "strictNullChecks": true
了tsconfig.json
当我运行应用程序时ng serve
,出现以下错误。
怎么了?我们如何
strictNullChecks
在 Angular 4 中实现?
javascript - 打字稿:使用 Map<> 和 strictNullChecks
给定以下简单的类:
此外,在 tsconfig.json 中,标志strictNullChecks
和strict
已启用。
尽管subscribers
检查了当前事件的键,但打字稿编译器会抱怨上面显示的错误消息(this.subscribers.get(event)
可能未定义)。
如果我没有完全错,this.subscribers.get(event)
永远不会是undefined
这种情况。
我怎样才能摆脱该消息?
angular - 如何告诉 Typescript *在这种情况下*一个函数的返回类型永远不会为空
我正在尝试让打字稿strictNullChecks
在 Angular 5 项目中工作。
我有一个表格:
我可以rememberMe
使用this.signinForm.get('rememberMe')
. 然而,该FormGroup#get
方法的返回是AbstractControl | null
如此打字稿不喜欢this.signinForm.get('rememberMe').value
(因为它认为this.signinForm.get('rememberMe')
可能是空的)。
是否可以告诉打字稿,在这种情况下,返回this.signinForm.get('rememberMe')
总是AbstractControl
而不是 AbstractControl | null
?
typescript - 打字稿和过滤布尔值
考虑打开以下代码:strictNullChecks
由于以下原因无法编译:
但绝对清楚,那false
将被 过滤掉.filter(Boolean)
。
同样的问题null
。
有没有办法(除了写作as number[]
)来标记该值不包含false
or null
?
typescript - 具有严格空值检查的 TypeScript - 数组访问呢?
在 TypeScript 中,如果启用了严格的 null 检查,我希望编译器会阻止我为变量赋值null
或赋值,除非它承认.undefined
null
但是,数组访问似乎允许绕过此检查。
例子:
TypeScript Playground 上的可运行版本(注意:必须在“选项”对话框中启用“严格空值检查”)。
这里发生了什么?
- 这是 TypeScript 编译器中的错误吗?
- 还是故意遗漏?
- 如果是后者,这是否记录在任何地方(最好有理由说明为什么这样做)?
typescript - Ngrx:“商店”类型中缺少属性“[Symbol.observable]”' 错误
我在 Angular v5 应用程序中使用 NGRX v4.1.1("strictNullChecks": true
虽然看起来无关紧要)。
我看到商店出现错误。鉴于以下情况:
打字稿在以下方面引发错误this.store.select()
:
这种选择存储切片(使用.select
)并将其分配给类型变量的方法已在文档Observable<>
中正式概述(我实际上看到他们已将文档更新为 ngrx v5 推荐的 API,但 v5 尚未发布然而,所以我已经链接到下一个最新版本的文档)。
问题是它store.select()
的返回类型Store<>
与Observable<>
.
然而,这是与商店交互的“官方”方法(我认为)。所以我想知道出了什么问题。如果我禁用strictNullChecks
,我仍然会遇到错误。这个错误出现在一个我一个月后要回来的项目中,我无法确定它究竟是什么时候开始的(或者为什么,很明显)。
任何建议表示赞赏:)
PS:Typescript不会让我将 return.select()
转换为 observable。
更新
更新 npm 为我提供了更好的错误消息。看起来 rxjs 的界面已经更新,或者 ngrx 的界面已经更新。
typescript - 打字稿为什么类型保护不能按预期为可空联合类型的对象数组工作(已启用strictNullChecks)
无论类型保护如何,Transpiler 都会抛出错误:
这里没有错误:
typescript - 具有严格打字稿的 createStore
使用strict
启用了打字稿的上述代码时,我收到以下警告:
我了解 TS 严格模式是什么,但我不明白为什么它将我的状态解释为可能undefined
我可能做错了什么?或者我怎么能在不做一些懒惰的事情的情况下处理错误as any
?
javascript - 使用严格模式在 TypeScript 中找不到对象时应该返回什么?
这是打字稿中的代码片段strictNullChecks: true
如您所见,由于编译错误,当我找不到元素时,我无法返回 null:
错误“null”不可分配给类型“T”
我应该返回什么而不是 null?最佳做法是什么?