定义函数参数类型的问题

来源:5-4 JWT原理与auth-provider实现

慕少_DSI

2021-02-18

图片描述
老师,您好,如果图片所示
第9行以及第14行,都是定义一个函数,为什么data没有用花括号,而user用了,有什么区别

写回答

1回答

Nolan

2021-02-19

一个解构,一个没解构,它们可以互换。比如 (userObj: {user: User}),用的时候 userObj.user 也是可以的

0
3
慕运维7084787
老师,typescript官网是如下描述的: 属性重命名 你也可以给属性以不同的名字: let { a: newName1, b: newName2 } = o; 这里的语法开始变得混乱。 你可以将 a: newName1 读做 "a 作为 newName1"。 方向是从左到右,好像你写成了以下样子: let newName1 = o.a; let newName2 = o.b; 令人困惑的是,这里的冒号不是指示类型的。 如果你想指定它的类型, 仍然需要在其后写上完整的模式。 let {a, b}: {a: string, b: number} = o; 我看到你代码中多处都是用 {a, b}: {a: string, b: number}来定义函数参数,如果不是属性重命名,是否可以简化写成a:string,b:string
2021-06-02
共3条回复

React17+Hook+TS4 优质实践,仿 Jira 企业级项目

解锁 React17 高阶用法,轻松应对大型复杂长周期项目

2691 学习 · 1236 问题

查看课程