当前位置:   article > 正文

TS——函数_ts parameters

ts parameters

一、函数的定义

 函数:参数列表里面的每个参数都需要名称和类型,

  函数本身也可以添加返回值类型,TypeScript能够根据返回语句自动推断出返回值类型,因此我们通常省略它

1.声明式定义

  1. function add(x: number, y: number): number {
  2. return x + y;
  3. }
  4. add(1, 2); //函数传参少了,多了都不行,参数定死了
  5. function fn(): number {
  6. return 100;
  7. }
  8. function fm(arg1: number, arg2: any[]): [number, any[]] {//[number, any[]]返回值类型是一个元组
  9. return [arg1 * arg1, [123, "abc", arg2]];
  10. }
  11. console.log(fm(100, ["hello world"]));//[ 10000, [ 123, 'abc', [ 'hello world' ] ] ]
  12. interface Person {
  13. age: number,
  14. color: string
  15. }
  16. function f(age: number, color: string): Person[] { //Person[] :Person接口类型的数组
  17. return [{ age, color }]
  18. }
  19. f(100, "red");

2.定义式

  1. let arr = [function add(x: number, y: number): number { return x + y; }];
  2. (function add(x: number, y: number): number {
  3. return x + y;
  4. })(10, 10);
  5. let myAdd = function (x: number, y: number): number { return x + y; };

3.可选参数

 可选参数一般放在必填参数后面,?表示可选参数

  1. interface Params {
  2. params: object
  3. }
  4. function Myaxiosget(arg1: string, arg2?: Params) {// ?表示可选参数
  5. console.log(arg1, arg2);
  6. }
  7. Myaxiosget("http://xxx", { params: { id: 1 } })//http://xxx { params: { id: 1 } }
  8. Myaxiosget("http://xxx")//http://xxx undefined

4.默认参数

在类型后加  “=值”

  1. // 默认参数
  2. function fx(arg1: number, arg2: string = "test") { //="xxxxx":表示默认参数
  3. console.log(arg1, arg2);
  4. }
  5. fx(123)//123 test
  6. fx(123, "world")//123 world

5.占位问题

  1. // undefined可以不传值的时候占位
  2. function fx2(arg1: number, arg2?: string, arg3?: string) {
  3. console.log(arg1, arg2, arg3);
  4. }
  5. fx2(123, undefined, "world")//123 undefined world
  6. function fx3(arg1: number = 100, arg2: string) {
  7. console.log(arg1, arg2);
  8. }
  9. fx3(undefined, "world")//100 world

6.剩余参数

...rest表示,(...rest:只能放最后面,是个数组)

  1. function ff(arg1: any, arg2: any, ...rest): void {
  2. console.log(arg1, arg2, rest);
  3. }
  4. ff(10, "hello");//10 hello []
  5. ff(10, "hello", 10, 200, 300);//10 hello [ 10, 200, 300 ]

7.函数类型变量:根据参数和返回值对函数进行类型分类

 (参数1:类型,参数2:类型)=>返回值类型

  1. let aa = 100;
  2. let f1: (number) => number;//来描述f1的返回类型是number
  3. f1 = function (arg1: number): number {
  4. return arg1 + 100;
  5. };
  6. function f2(arg1: number): number {
  7. return 200;
  8. }
  9. f1 = f2;
  10. f1(90);
  1. let f1: (number) => number;//函数类型描述
  2. let f3 = (arg1: number): number => arg1;//箭头函数 ①有等号,②返回值=> arg1是一个变量

 8.使用接口封装函数变量类型

  1. interface MyTool {
  2. (number): number //: number是指函数的返回值类型
  3. }
  4. let pp: MyTool;
  5. pp = (arg: number): number => { //箭头函数
  6. return 200;
  7. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/545426
推荐阅读
相关标签
  

闽ICP备14008679号