首页 > 其他分享 >TypeScript入门到精通——TypeScript类型系统基础——函数类型

TypeScript入门到精通——TypeScript类型系统基础——函数类型

时间:2023-10-25 17:14:42浏览次数:44  
标签:TypeScript 入门 函数 greet 参数 类型 name

函数类型

一、常规参数类型

  在函数形式参数列表中,为参数添加类型注解就能够定义参数的类型。例如,在下列中将 add 函数声明中的参数 x 和参数 y 的类型都定义为 number 类型。

function add(x: number, y: number){
    return x + y;
}

  针对函数表达式和匿名函数,我们也可以使用相同的方法来定义参数的类型。

const f = function(x: number, y: number){
   return x + y
}

如果在函数形式参数列表中没有明确指定参数类型,并且编译器也无法推断参数类型,那么参数类型将默认为 any 类型。

function add(x,y){
  return x + y;
}

二、可选参数类型

  在JavaScript中,函数的每一个参数都是可选参数,而在TypeScript中,默认情况下函数的每一个参数都是必选参数。

  JavaScript 示例如下:

function greet(name) {  
    console.log("Hello, " + name);  
}

当调用greet(John),这个函数会正常运行,因为name参数是可选的。如果传递的参数比函数定义中需要的参数少,那么未被传递的参数会被设置为undefined

在TypeScript中,所有参数默认都是必需的。如果尝试调用一个函数而没有提供所有参数,TypeScript会抛出一个错误。例如,如果在TypeScript中定义了一个函数:

function greet(name: string) {  
    console.log("Hello, " + name);  
}

  调用greet(John),TypeScript会抛出一个错误,因为没有提供所有必需的参数。如果希望某些参数为可选的,需要明确地在函数定义中指出。这可以通过在参数名前加上问号(?) 来实现,如下所示:

function greet(name?: string) {  
    console.log("Hello, " + name);  
}

  在这个例子中,name参数就是可选的。现在可以调用greet(John)而不会得到任何错误。

三、默认参数类型

  函数默认参数类型可以通过类型注解定义,也可以根据默认参数值自动地推断类型。

  例如,如果我们有一个函数,它接受两个参数,其中第二个参数有一个默认值,我们可以使用类型注解来定义这个参数的类型:

function greet(name: string, punctuation: string = '!') {  
  return `${name}${punctuation}`;  
}  
  
console.log(greet('Alice'));  // 'Alice!'  
console.log(greet('Bob', '??'));  // 'Bob??'

  在这个例子中,punctuation参数有一个默认值'!',并且它的类型被注解为string。如果我们试图给punctuation参数传递一个非字符串的值,TypeScript将会发出警告。 

 

 

 

标签:TypeScript,入门,函数,greet,参数,类型,name
From: https://www.cnblogs.com/zuoyang/p/17787646.html

相关文章

  • java的Long类型进行比较
    在Java中,对于Long类型的对象,如果它们包含的值在范围[-128,127]之间,它们会被缓存,以便在整数范围内进行重用。这是因为Java的自动装箱(autoboxing)机制的一部分。 问题:long类型127的比较 Long类型129的比较 如果你想在[-128,127]之外进行值的比较,而不是引用的比较,你应该使......
  • 解决未授予用户在此计算机上的请求登录类型
    当我们访问共享打印机时计算机时出现如下问题,是不是很郁闷。可按如下方法试一下:一、启用来宾用户 1、点击开始菜单,在计算机上单击右键,选择管理。2、依次展开系统工具—本地用户和组—用户。3、双击Guest,将账户已禁用前面的勾去掉,点击应用并确定。打开组策略: 使......
  • ElementPlus里的类型别名声明及使用
    前言最近刚开始使用ts,定义的变量总是不知道类型,特别是第三方库中,更是不知道有哪些类型,笨人本办法,遇到一个就记录一下,方便我下次使用查询组件实例我们通过组件的ref属性获取组件实例时,定义的实例变量需要指定类型。下面是常见的一些组件实例类型el-scrollbar<template><el-scroll......
  • bilibili B站:makefile 编译Linux C/C++项目快速入门
    视频摘自:https://www.bilibili.com/video/BV1vg41177zT    ......
  • 鸿蒙极速入门(二)-开发准备和HelloWorld
    一、开发准备本篇博客基于的系统版本:华为官方HarmonyOS版本3.1、OpenHarmony版本4.0Beta开发语言ArkTS语言(推荐)JS语言(支持)Java语言(已放弃支持)从Harmony4.0开始,官方主推ArkTS语言,且不再支持Java语言UI框架-方舟开发框架(ArkUI框架)ArkUI框架介绍个人理解:类似iOS的......
  • winform chart 入门
       usingSystem.Windows.Forms;usingSystem.Windows.Forms.DataVisualization.Charting;namespaceWindowsFormsApp1{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();//网格设......
  • 在Java中,如果一个日期是字符串类型的"2023-01",怎样获取前一个月
    在Java中,如果一个日期是字符串类型的"2023-01",你可以使用java.time包中的类来处理日期。以下是一个示例代码,演示如何获取前一个月的字符串类型的月份:importjava.time.LocalDate;importjava.time.format.DateTimeFormatter;publicclassMain{publicstaticvoidmain(St......
  • 微信小程序--4. ts文件中方法的e的类型是什么
    4.ts文件中方法的e的类型是什么页面:e:WechatMiniprogram.BaseEvent页面各种方法的e的类型可以在typings\types\wx\lib.wx.event.d.ts文件中找到。组件:e:WechatMiniprogram.Component.Constructor组件各方法的e的类型可以在typings\types\wx\lib.wx.component.d.ts文件中找到......
  • shiro入门
     一篇适合小白的Shiro教程Shiro简介什么是ShiroShiro核心架构SubjectSecurityManagerAuthenticatorAuthorizerRealmSessionManagerSessionDAOCacheManagerCryptographyShiro中的认证什么是认证三个概念SubjectPrincipalcredential认证的实......
  • sqlite3 设置返回值为字典类型
    #0.pipinstallpymysql#1.导入pymysqlimportpymsql#2.创建一个数据库连接对象#3.创建游标cursor=conn.cursor()#4.SQL执行cursor.execute(sql)#5.DML提交事务conn.commit#6.关闭游标cursor.close()#7.关闭连接cursor.close()importsqlite3......