如何在TypeScript中正确指定对象解构的类型?
你好!我刚开始学习TypeScript,在对象解构时遇到了问题。假设我有一个函数,它接收一个包含用户设置的对象,我想直接在参数中解构它:
```typescript
function createUser({name, age, email}) {
// ... 代码
}
```
但TypeScript报错说参数没有类型。我尝试这样写:
```typescript
function createUser({name: string, age: number, email: string}) {
// ...
}
```
但这不起作用——它把`string`、`number`当作新的变量名,而不是类型。于是我尝试了另一种写法:
```typescript
function createUser({name, age, email}: {name: string, age: number, email: string}) {
// ...
}
```
这似乎可行,但看起来很冗长。如果我想让属性变为可选呢?或者如果有嵌套解构呢?例如,有一个包含地址的对象:
```typescript
const user = {
name: '伊万',
address: {