TypeScript中的函数注释

一. 概览

函数注释主要分为显示注释、类型推断、隐式的any,现在来详细总结下

二. 显示注释

举个例子

let str1: string = 'hello,jack'let intArr: number[] = [1,2,3]
let strArr:Array<string> = ['1','2','3']function test(a: number,b: number): number {return a + b
}
  1. 为什么类型是用的小写?
    在TypeScript中,使用string或String主要取决于你的需求。两者都可以用于基础类型或构造函数,具体取决于你想如何使用它们;
    如果你只是声明一个包含字符串的变量,使用string更为合适,因为这更符合类型的定义。

    然而,如果你需要使用String类的特定功能(例如,处理编码或正则表达式),你需要使用String。
    一般来说,对于基础类型,使用string更为常见和推荐,而对于构造函数或特定的类方法,使用String更合适

三. 类型推断

通过赋值让ts对变量进行类型推断;
类型推断是省略类型显示定义的方式,不需要显示定义,也能得到正确的类型

  1. 基础类型
let a = 123//推断成let a: number = 123
a推断成number
  1. 数组类型
let arr = [1,'aa',true]// 推断成
let arr: (string | number | boolean)[] = [1,'aa',true]
  1. 对象类型
let obj1 = {a: 1,b: 'f',c: true
}
// 推断成
let obj1: {a: number;b: string;c: boolean;
} = {a: 1,b: 'f',c: true}

可选属性

type TypeName = {id: number,
age: number,
married?:boolen
}
// 或者
type TypeInfoArr = [string ,number ,boolean?]

如果你需要一个特定属性集合的obj定义的话,你需要显示的给obj进行类型定义

四. 隐式any

如果没有定义类型,且无法进行类型推断,且非严格模式,那么隐式注解为any

function test(a,b) {return a + b
}

其中的a,b变量传参就是隐式的any

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/215947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录 | xftp远程连接两台windows

1、打开openssh 设置 -> 应用 -> 可选功能 -> 添加功能 -> OpenSSH 客户端&#xff0c;将 ssh 客户端安装将两台电脑的 ssh 开启&#xff0c;cmd 中输入 net start sshd2、配置 win10 账号密码 3、进行 xftp 连接

MATLAB安装

亲自验证有效&#xff0c;多谢这位网友的分享&#xff1a; https://blog.csdn.net/xiajinbiaolove/article/details/88907232

租一台服务器多少钱决定服务器的价格因素有哪些

租一台服务器多少钱决定服务器的价格因素有哪些 大家好我是艾西&#xff0c;服务器这个名词对于不从业网络行业的人们看说肯定还是比较陌生的。在21世纪这个时代发展迅速的年代服务器在现实生活中是不可缺少的一环&#xff0c;平时大家上网浏览自己想要查询的信息等都是需要服…

加减乘除简单吗?不,一点都不,利用位运算实现加减乘除(代码中不含+ - * /)

文章目录 &#x1f680;前言&#x1f680;异或运算以及与运算&#x1f680;加法的实现&#x1f680;减法的实现&#x1f680;乘法的实现&#x1f680;除法的实现 &#x1f680;前言 这也是阿辉开的新专栏&#xff0c;知识将会很零散不成体系&#xff0c;不过绝对干货满满&…

华为鸿蒙HarmonyOS应用开发者高级认证试题及答案

判断 1只要使用端云一体化的云端资源就需要支付费用&#xff08;错&#xff09; 2所有使用Component修饰的自定义组件都支持onPageShow&#xff0c;onBackPress和onPageHide生命周期函数。&#xff08;错&#xff09; 3 HarmonyOS应用可以兼容OpenHarmony生态&#xff08;对…

多维时序 | MATLAB实现SAO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现SAO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现SAO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现SAO-CNN-B…

CommonJs模块化实现原理ES Module模块化原理

CommonJs模块化实现原理 首先看一个案例 初始化项目 npm init npm i webpack -D目录结构如下&#xff1a; webpack.config.js const path require("path"); module.exports {mode: "development",entry: "./src/index.js",output: {path: p…

硬件开发笔记(十六):RK3568底板电路mipi摄像头接口原理图分析、mipi摄像头详解

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/134922307 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

Redis缓存主要异常及解决方案

1 导读 Redis 是当前最流行的 NoSQL数据库。Redis主要用来做缓存使用,在提高数据查询效率、保护数据库等方面起到了关键性的作用,很大程度上提高系统的性能。当然在使用过程中,也会出现一些异常情景,导致Redis失去缓存作用。 2 异常类型 异常主要有 缓存雪崩 缓存穿透 缓…

【sqli靶场】第二关和第三关通关思路

目录 前言 一、sqli靶场第二关 1.1 判断注入类型 1.2 判断数据表中的列数 1.3 使用union联合查询 1.4 使用group_concat()函数 1.5 爆出users表中的列名 1.6 爆出users表中的数据 二、sqli靶场第三关 2.1 判断注入类型 2.2 观察报错 2.3 判断数据表中的列数 2.4 使用union联合…

Emutouch学习笔记

1 项目依赖 DeviceFarmer/minitouch 1.1 确认submodule引用的 commit ID git submodule status1.2 更新子模块到最新版本 git submodule init && git submodule update --remote

Android:监听开机广播自己唤醒

要通过代码获取安卓系统的开机广播消息&#xff0c;并在收到消息后拉起当前apk&#xff0c;您可以使用以下步骤&#xff1a; 创建一个广播接收器&#xff08;Broadcast Receiver&#xff09;来接收开机广播消息。在接收到开机广播消息时&#xff0c;您可以在接收器中编写代码来…

什么是 web 组态?web 组态与传统组态的区别是什么?

组态软件是一种用于控制和监控各种设备的软件&#xff0c;也是指在自动控制系统监控层一级的软件平台和开发环境。这类软件实际上也是一种通过灵活的组态方式&#xff0c;为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。通常用于工业控制&#xff0c;自动…

Spring Boot整合 Spring Security

Spring Boot整合 1、RBAC 权限模型 RBAC模型&#xff08;Role-Based Access Control&#xff1a;基于角色的访问控制&#xff09; 在RBAC模型里面&#xff0c;有3个基础组成部分&#xff0c;分别是&#xff1a;用户、角色和权限&#xff0c;它们之间的关系如下图所示 SELECT…

02.类模板

2、类模板 2.1 类模板语法 建立一个通用类&#xff0c;类中的成员、数据类型可以不具体制定&#xff0c;用一个虚拟的类型来代表。 template<typename T> // 类template&#xff1a;声明创建模板typename&#xff1a;表名其后面的符号是一种数据类型&#xff0c;可以用 …

【算法】算法题-20231211

这里写目录标题 一、387. 字符串中的第一个唯一字符二、1189. “气球” 的最大数量三、1221. 分割平衡字符串 一、387. 字符串中的第一个唯一字符 简单 给定一个字符串 s &#xff0c;找到 它的第一个不重复的字符&#xff0c;并返回它的索引 。如果不存在&#xff0c;则返回…

算法通关村第十五关 | 青铜 | 用4KB内存寻找重复元素

处理海量数据的思路 1.使用位存储&#xff1a;占用的空间是存整数的 1/8 。 2.分块&#xff1a;也叫外部排序&#xff0c;将大文件划分为若干小块&#xff0c;先处理小块再逐步得到想要的结果&#xff0c;需要至少遍历两次全部序列&#xff0c;是用时间换空间的方法。 3.堆&…

Mockjs 增、删、改、查(分页、多条件查询)

查&#xff08;分页、多条件查询&#xff09;&#xff1a; 关键代码&#xff1a; Mock.mock(/vue-table-list/tableLinkage/list, post, (option) > {// console.log("&#x1f680; ~ file: tableLinkage.js:66 ~ Mock.mock ~ option:", option)const params J…

MFC画折线图,基于x64系统

由于项目的需要&#xff0c;需要画一个折线图。 传统的Teechart、MSChart、HighSpeedChart一般是只能配置在x86系统下&#xff0c;等到使用x64系统下运行就是会报出不知名的错误&#xff0c;这个地方让人很苦恼。 我在进行配置的过程之中&#xff0c;使用Teechart将x86配置好…

基于Java SSM框架实现班级同学录、聚会报名网站系统项目【项目源码+论文说明】

基于java的SSM框架实现班级同学录聚会报名网站系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人…