Avatar ·

TypeScript中的接口类型检查:如何确定对象是否符合接口?

大家好!我开始学习TypeScript,遇到了一个看似简单但找不到正确解决方案的问题。我有一个接口: ```typescript interface User { name: string; age: number; email: string; } ``` 我从API获取数据,类型为`any`或`unknown`。我需要在使用对象字段之前,检查它是否符合`User`接口。在JavaScript中,我会写`typeof obj.name === 'string'`等,但在TypeScript中,我想优雅地利用语言特性来实现。 我尝试过写`if (obj instanceof User)`,但TypeScript报错说`User`是接口而不是类。尝试过`typeof obj === 'User'`——也不起作用。我搜索过,找到了关于type guards和自定义函数的提及,但没有完全理解如何正确实现。 请告诉我,在TypeScript中如何检查对象是否符合接口?重要的是,检查要在编译阶段(TypeScr