有一个在Angular中使用* ngIf的很好的文档:https ://angular.io/api/common/NgIf 但是,是否可以使用* ngIf异步变量并对此进行多次检查?就像是:
<div *ngIf="users$ | async as users && users.length > 1">
...
</div>
Run Code Online (Sandbox Code Playgroud)
当然,可以使用嵌套的* ngIf,例如:
<div *ngIf="users$ | async as users">
<ng-container *ngIf="users.length > 1">
...
</ng-container>
</div>
Run Code Online (Sandbox Code Playgroud)
但最好只使用一个容器,而不是两个。
TS v3.x 带来了新类型:unknown
. 但目前还不太清楚如何轻松地使用这种类型来代替any
. 示例:您正在使用一些没有类型的第三方库。而且您没有时间自己编写这些类型。您需要处理该库提供的一些数据。
前unknown
:
function handle(data: any) {
if (data && data.arrayProp && typeof data.arrayProp[Symbol.iterator] === 'function') {
for (let x of data.arrayProp) {...}
}
}
Run Code Online (Sandbox Code Playgroud)
和unknown
:
function handle(data: unknown) {
// this line gives TS error: `data` is unknown type
if (data && data.arrayProp && typeof data.arrayProp[Symbol.iterator]=== 'function') {
...
Run Code Online (Sandbox Code Playgroud)
互联网上的大多数文档都使用某种instanceof
方法来检查类型data
。但我不太感兴趣data
是什么类型。我想知道的是是否存在arrayProp
。就是这样
如何用unknown
类型来做到这一点?