TypeScript错误:类型 'string | undefined' 不可分配给类型 'string' — 如何修复?
你好!我是TypeScript新手,遇到了一个令人困惑的错误。我有一个用户接口,其中`name`字段是可选的(可能为`undefined`)。我试图获取这个名称并将其传递给一个只接受字符串的函数,但TypeScript报错了。
这是我的代码:
```typescript
interface User {
id: number;
name?: string; // 可选字段
}
function greet(name: string) {
console.log(`你好,${name}!`);
}
const user: User = { id: 1, name: '安娜' };
greet(user.name); // 错误:类型 'string | undefined' 不可分配给类型 'string'
```
我以为如果`name`字段存在,那么它一定是字符串。但编译器说它是`string | undefined`。为什么会这样,以及如何正确处理这种情况?我尝试过通过`// @ts-ignore`忽略错误,但这是不好的实践。请告诉我如何正确操作,使代码类型安全?也许有几种解决方法?
提前感谢你的帮助!