异步管道返回WebStorm中的任何类型

时间:2017-12-29 11:46:23

标签: angular typescript pipe webstorm

我想在Angular 5应用程序中使用异步管道。我正在控制器中定义一个带有用户的Observable。当我使用异步管道在模板中展开它时,Angular语言服务无法识别类型UserModel并且似​​乎正在使用any

我的问题:如何让异步管道与类型一起使用?

根据this post它应该有用。

Angular: v5.5.1
Angular Language Service: v5.5.1
WebStorm: 2017.3.2

什么行不通:

@Controller({})
export class MyController {
  users: Observable<UserModel[]>
  constructor() { this.users = userService.get() }
}

模板:

<div *ngFor="let user in users | async">{{ user.firstName + user.missing }}</div>

我当前的替代

@Controller({})
export class MyController extends OnDestroy {
  private alive = true
  users: UserModel[]
  constructor() { 
    userService
      .get()
      .takeWhile(() => this.alive())
      .subscribe(users => this.users = users) 
  }
  ngOnDestroy() { this.alive = false; }
}

模板:

<div *ngFor="let user in users">{{ user.firstName + user.missing }}</div>

编辑: userService.get()

的实施
get() { return this.http.get<UserModel[]>('api/users') )}

EDIT2:添加了一个plunkr。要明确 - 我希望构建错误和自动完成功能适用于user上的属性。所以:user.name应该可以正常工作,但user.missing应该抛出构建错误。     https://plnkr.co/edit/i9ggczzIFPEpP30KrcmE?p=preview

0 个答案:

没有答案