TypeScript错误:类型'string'不能赋值给类型——如何修复?
大家好!我刚开始学习TypeScript,遇到了一个令人困惑的错误。我有一个用户接口:
```typescript
interface User {
name: string;
age: number;
role: 'admin' | 'user';
}
```
我尝试根据从表单获取的数据创建一个用户对象。数据以字符串形式传入(甚至年龄也是来自input的字符串)。我写了这样的代码:
```typescript
const formData = {
name: 'Иван',
age: '25', // 字符串,但需要数字
role: 'admin'
};
const user: User = {
name: formData.name,
age: formData.age, // 错误:类型'string'不能赋值给类型'number'
role: formData.role // 错误:类型'string'不能赋值给类型'"admin" | "user"'
};
```
TypeScript对age和role报错。我明白age应该是数字,而role必须是严格意义上的'admin'或'user',但如何正确转换类型呢?我尝试过使用`as`——它可以工作,但我听说这是不好的实践。请告诉我如何优雅地解决这个问题。