代码如下:
cpp
class Person {
private age: number;
constructor(age: number) {
this.age = age;
}
getAge(): number {
return this.age;
}
}
let map: Map<string, Object> = new Map();
map.set('person', new Person(18));
let person: Person | undefined = map.get('person') as Person;
if (person instanceof Person) {
console.log("age: " +person.getAge()); // 输出:18
} else {
console.error('对象不是Person类型');
}
在这个示例中,我将Map
的值类型设置为Object,这样我就可以避免在将对象放入**Map
**时进行类型检查。
然后,当我从**Map
** 中检索对象时,我使用类型断言as 将其转换为**Person
**类型。
最后,我使用**instanceof
操作符来检查对象是否真的是Person
**类型的实例,以确保我不会调用一个不存在的方法或访问一个不存在的属性。