我有一个类,我设置了 range
类型至IntervalRange
export class Test {range: IntervalRange;}
然后在父类中我初始化该值:
export class TestInitializer {
Create(){
return <Test>{
range: IntervalRange.initialize(Database.GetByName('MONTH').id};
}
InitializeElement() {
let test = <Test>JSON.parse(JSON.stringify(configuration));
return test;
}
然后在我的其他组件中我将其用作:
@Input() range: IntervalRange;
但是在函数 range.getRange();
上
我得到:ERROR TypeError: this.range.getRange is not a function
这是为什么呢?它说range
是一个对象,尽管它应该是 IntervalRange
.
我尝试写as IntervalRange
, <IntervalRange> range
没有任何作用。如何解决这个问题?
更新:let type = typeof(this.range)
;打印"object"
方法:
ngOnChanges() {
if (this.range) {
let type = typeof(this.range);
let ddd = this.range.getRange(); //<----- this is where I get error
}
最佳答案
类型转换仅转换类型。 Typescript 在运行时不存在。因此,如果 JSON.parse 没有返回正确的 Test 实例(因为方法不会被序列化,所以不会返回),它将在运行时失败。您可能想要构建一个测试实例,并将序列化数据加载到其中,而不是进行类型转换。
关于javascript - 将对象类型转换为另一种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54656835/