Angular 角度常春藤类型检查:类型';安全HTML';不可分配给类型';字符串';
切换到Ivy编译器后,我遇到类型脚本错误:Angular 角度常春藤类型检查:类型';安全HTML';不可分配给类型';字符串';,angular,typescript,angular-ivy,Angular,Typescript,Angular Ivy,切换到Ivy编译器后,我遇到类型脚本错误: [Step 4/5]src/app/app.component.html(1,26):类型“SafeHtml”不可分配给类型“string”。 在Angular类中,有一个成员属性声明为SafeHtml: @组件({ 选择器:“应用程序”, 模板:`` }) 导出类AppComponent{ 说明:SafeHtml; 构造函数(私有sanitizer:DomSanitizer){} ngOnInit():void{ this.description=
[Step 4/5]src/app/app.component.html(1,26):类型“SafeHtml”不可分配给类型“string”。
在Angular类中,有一个成员属性声明为SafeHtml
:
@组件({
选择器:“应用程序”,
模板:``
})
导出类AppComponent{
说明:SafeHtml;
构造函数(私有sanitizer:DomSanitizer){}
ngOnInit():void{
this.description=this.sanitizer.sanitize(SecurityContext.HTML,来自服务器的任何内容);
}
}
我的问题是如何将SafeHtml
和SafeUrl
转换为字符串?只是.toString()
可以吗
AngularsSafeHtml
声明为:
/**
*标记可安全用作HTML的值的接口。
*
*@publicApi
*/
导出声明接口SafeHtml扩展了SafeValue{
}
和lib.dom.d.ts中定义的[innerHtml]:
interface InnerHTML{
innerHTML:字符串;
}
innerHtml
是string
的类型,而我有SafeHtml
如何复制:
git克隆https://github.com/felikf/angular-repro-safe-html.git
npm i
npm运行构建
这似乎是一个bug,现在答案是:您能提供实际的代码,而不是您认为相关的代码吗?Typescript键入错误来自TS,而不是模板:您提供的代码对帮助您几乎毫无用处……我认为您错了-Angular Ivy编译器对Angular模板执行更严格的键入检查。如本文所述:我的问题是,该描述在lib.dom.d.ts中定义为
SafeHtml
,而InnerHtml
在lib.dom.d.ts中定义为String
。但是,除非你提供代码,否则没有人能够帮助你。(另外,根据,你应该提供一个,所以我想更多的代码毕竟不是那么糟糕!)@Maryannah你是对的。我已经添加了复制问题的步骤-请参见问题。