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);
我正在使用 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);