怎么感觉ts很多地方很反人类,我感觉可能是因为没有案例,无法理解为什么要这么做

来源:3-1 TS 函数类型和相关解构

Richard学python

2023-10-23

我能明白函数参数的解构,但是不知道为什么就是觉得没用。
比如:

interface subInfoType {
	name: string;
	age: number;
	sex: string;
}

let subInfo = ({ name, age }: subInfoType):void => {
	console.log('name:', name);
	console.log('age:', age);
  return 
};

subInfo({name:'richard',age:18}) // 还是要传入3个参数才能不报错

既然在设计函数的时候,只用到两个参数,可是在调用的时候依旧需要传入3个才行,这样设计的意义是什么呢?很难理解,get不到ts的精华所在😭,求解答

写回答

1回答

keviny79

2023-11-15

可以把任意一个属性设置为可选属性,  sex 设置为可选属性,这样好处是变成一个可选属性了,可传,不需要的时候可以不传,当然这里这是一个例子。我们把问题往前推进异步,比如,我这个接口有几个备注属性,有时调用传递时需要,有时又不需要,那么我们不可能定义两个接口,对吧。

interface subInfoType {

  name: string;

  age: number;

  sex?: string;

}


另外不好意思,我进来多次今天才看到这个问题,难道是我看丢了?现在补答。

0
0

TypeScript 从入门到深度掌握,晋级TS高手

200+技术点,22 场景应用,Vue3 源码 TS 用法剖析

430 学习 · 53 问题

查看课程