Avatar ·

如何在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: {