class ProjectInput {
templateElement: HTMLTemplateElement;
hostElement: HTMLDivElement;
constructor() {
this.templateElement = document.getElementById('project-input') as HTMLTemplateElement;
this.hostElement = document.getElementById('app')! as HTMLDivElement;
console.log(this.templateElement);
}
}
两个问题:
templateElement
属性做了类型限制又在赋值时做断言,这样错误也只能在runtime检测出来,有什么意义?hostElement
属性做了类型断言还有必要做非空断言吗?
因为
document.getElementById
的返回值是HTMLElement | null
啊,你不断言怎么赋值给另一种类型?举例:
下面那个非空断言倒是没什么用,有类型断言就可以了。