当前位置: 首页 > news >正文

typescript定义函数的传参、返回值

  • Render 函数中定义函数传参
interface List {id: number;name: string;
}interface Result {data: List[]; //表示由 List 接口组成的数组
}function Render(result: Result) {result.data.forEach(value => {console.log(value);});
}let result = {data: [{id: 1,name: '张三',},{id: 2,name: '李四',},{id: 3,name: '王五',},],
};Render(result);
  • 规范参数可选属性和只读属性
interface List {readonly id: number;name: string;age?: number;
}
  • 函数传参时如何绕过类型检查
    如果在接收的后端数据中,比约定好的接口多了一个字段,能否通过类型检查?会不会报错?
let result1 = {data: [{ id: 1, name: 'a', sex: 'male' },{ id: 2, name: 'b' },],
};
//这样是不会报错的,只要满足接口约定的必要条件即可
Render(result1);
//但如果这样调用,会报错,因为无法通过sex:"man"的类型检查。这时候需要用其他方法
Render({data: [{ id: 1, name: 'a', sex: 'male' },{ id: 2, name: 'b' },],
});

我们有三种方法:

  1. 通过接口定义变量,函数调用时传入变量名(只对必要的约定条件进行检查,多余的数据不做检查)
  2. 类型断言(所有约定都不做类型检查,失去了ts类型检查的意义)
  3. 索引签名
//类型断言
Render({data: [{ id: 'b', name: 3, sex: 'man' },{ id: 2, name: 'b' },],
} as Result); // 明确告诉编译器,数据符合Result,这样,编译器会绕过类型检查//使用索引签名解决
interface List {id: number;name: string;[sex: string]: any;
}

使用接口来定义函数的传参、返回值的类型

interface Add1 {(x: number, y: number): number;
}
let add1: Add1 = (a, b) => a + b;

使用类型别名来定义来函数的传参、返回值的类型

type Add2 = (x: number, y: number) => number;
let add2: Add2 = (a, b) => a + b;

直接在函数体中定义来函数的传参、返回值的类型

const Add3 = (x: number, y: number): number => {return x + y;
};
http://www.lryc.cn/news/388868.html

相关文章:

  • GlimmerHMM安装与使用-生信工具24
  • Elasticsearch架构基本原理
  • STM32自己从零开始实操08:电机电路原理图
  • 无线物联网练习题
  • Java的日期类常用方法
  • 数据库设计规范详解
  • Android12 MultiMedia框架之MediaExtractorService
  • Chapter 8 Feedback
  • Administrators就最高了???system是什么??本地用户提权内网学习第三天 你知道uac是什么??
  • 回溯 | Java | LeetCode 39, 40, 131 做题总结(未完)
  • Linux系统上部署Whisper。
  • 申请一张含100个域名的证书-免费SSL证书
  • 爬数据是什么意思?
  • Pytorch实战(二)
  • wordpress 付费主题modown分享,可实现资源付费
  • 【INTEL(ALTERA)】NIOS II调试器中的重新启动按钮不起作用
  • Hive On Spark语法
  • 利用 fail2ban 保护 SSH 服务器
  • 在TkinterGUI界面显示WIFI网络摄像头(ESP32s3)视频画面
  • Yolov8训练时遇到报错SyntaxError: ‘image_weights‘ is not a valid YOLO argument.等问题解决方案
  • javaweb(四)——过滤器与监听器
  • 冗余电源的应用,哪些工作站支持冗余电源
  • [信号与系统]IIR滤波器与FIR滤波器相位延迟定量的推导。
  • Python海量数据处理脚本大集合:pyWhat
  • postgresql搭建
  • Web 品质标准
  • 深入理解PyTorch:原理与使用指南
  • 【MySQL事务】深刻理解事务隔离以及MVCC
  • 关于Mac mini 10G网口的问题
  • 计算机网络-第4章 网络层