Angular 为什么角度教程不需要导入可观察

Angular 为什么角度教程不需要导入可观察,angular,typescript,angular4-httpclient,Angular,Typescript,Angular4 Httpclient,如果您查看angular教程,它们不会像其他人一样导入observable,也不会导入authService 以下是我为让ts不抱怨所做的: import { AuthService } from './auth.service'; import { Observable } from 'rxjs/Observable'; import { Injectable } from '@angular/core'; import { HttpEvent, HttpInterceptor, HttpHa

如果您查看angular教程,它们不会像其他人一样导入observable,也不会导入authService

以下是我为让ts不抱怨所做的:

import { AuthService } from './auth.service';
import { Observable } from 'rxjs/Observable';
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
  constructor(private auth: AuthService) {}

  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    // Get the auth header from the service.
    const authHeader = this.auth.getAuthorizationHeader();
    // Clone the request to add the new header.
    const authReq = req.clone({headers: req.headers.set('Authorization', authHeader)});
    // Pass on the cloned request instead of the original request.
    return next.handle(authReq);
  }
}
从“/auth.service”导入{AuthService};
从“rxjs/Observable”导入{Observable};
从“@angular/core”导入{Injectable};
从'@angular/common/http'导入{HttpEvent,HttpInterceptor,HttpHandler,HttpRequest};
@可注射()
导出类AuthInterceptor实现HttpInterceptor{
构造函数(私有身份验证:身份验证服务){}
截取(req:HttpRequest,next:HttpHandler):可观察{
//从服务获取身份验证标头。
const authHeader=this.auth.getAuthorizationHeader();
//克隆添加新标头的请求。
const authReq=req.clone({headers:req.headers.set('Authorization',authHeader)});
//传递克隆请求而不是原始请求。
返回next.handle(authReq);
}
}
他们是在做我没有做的事情,还是他们只是跳过导入以使教程缩短两行

以下是我为让ts不抱怨所做的

这是正确的版本。这些文件根本不准确/过时。给他们发一份公关 为了代码的可读性,这里没有显示,但是如果您通过 他们的教程:

这里有到现场演示的链接:

在这里你可以清楚地看到所有的进口商品

文件:app/hero-search.component.ts

import { Component, OnInit } from '@angular/core';
import { Router }            from '@angular/router';

import { Observable }        from 'rxjs/Observable';
import { Subject }           from 'rxjs/Subject';

// Observable class extensions
import 'rxjs/add/observable/of';

// Observable operators
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/distinctUntilChanged';

为了简洁起见,我看起来他们省略了任何非角度导入。据我所知,没有什么魔法可以消除你提到的进口需求。好的,谢谢。这就是我的假设,但我希望我能施展魔法。