类具有或正在使用来自外部模块的名称"SafeUrl"但无法命名

mot*_*son 0 javascript angular2-cli angular2-aot angular

我正在使用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);
  }
}
Run Code Online (Sandbox Code Playgroud)

sanitize函数采用如下URL:

blob:http://localhost:4200/7c1d7221-aa0e-4d98-803d-b9be6400865b
Run Code Online (Sandbox Code Playgroud)

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

模块构建失败:错误:/.../src/app/app.component.ts(18,3):来自导出类的公共方法的返回类型具有或正在使用来自外部模块的名称"SafeUrl""/ .../node_modules/@ angular/platform-b​​rowser/src/security/dom_sanitization_service"但无法命名.)

我在Angular 2.1.0中使用CLI

谁知道我怎么能绕过这个问题呢?还是应该报告为错误?

mot*_*son 7

所以我似乎必须SafeUrl在方法中添加一个返回类型

  sanitize(url: string):SafeUrl {
    return this.sanitizer.bypassSecurityTrustUrl(url);
  }
Run Code Online (Sandbox Code Playgroud)

非常感谢alxhub