Class 拥有或正在使用来自外部模块的名称 'SafeUrl' 但无法命名

Class has or is using name 'SafeUrl' from external module but cannot be named

我正在使用 sanitizer.bypassSecurityTrustUrl 在页面上放置指向 blobURL 的链接。只要我不 AoT 编译项目,这就可以正常工作。

import {DomSanitizer} from '@angular/platform-browser';

export class AppComponent {
  constructor(private sanitizer: DomSanitizer) {
  }

  sanitize(url: string) {
    return this.sanitizer.bypassSecurityTrustUrl(url);
  }
}

清理函数采用这样的 URL:

blob:http://localhost:4200/7c1d7221-aa0e-4d98-803d-b9be6400865b

如果我使用 AoT 编译,我会收到此错误消息:

Module build failed: Error: /.../src/app/app.component.ts (18,3): Return type of public method from exported class has or is using name 'SafeUrl' from external module "/.../node_modules/@angular/platform-browser/src/security/dom_sanitization_service" but cannot be named.)

我在 Angular 2.1.0

中使用 CLI

有人知道我怎样才能避免这个问题吗?还是应该将其报告为错误?

所以看来我必须在方法

中添加一个return类型的SafeUrl
  sanitize(url: string):SafeUrl {
    return this.sanitizer.bypassSecurityTrustUrl(url);
  }

非常感谢alxhub

在我的例子中,我正在启动一个这样的属性:

public img64 = this.domSanitizer.bypassSecurityTrustResourceUrl('data:image/jpg;base64,' + this.base64Image);

导致同样的错误。

感谢@mottosson,我做对了(只需添加类型 SafeUrl):

public img64: SafeUrl = this.domSanitizer.bypassSecurityTrustResourceUrl('data:image/jpg;base64,' + this.base64Image);