初始TypeScript

TS增加的类型

原始类型

let str: string = 'name'

其他的都一样的写。

数组类型

let arr: number[] = [1,2,3] //数字数组
let bool: boolean[] = [false,true] //布尔数组let str: Array<string> = ['a','b','c']

联合类型

多种类型定义拼接,不能通过&拼接,因为一个数据不可能同时拥有多种类型。

1.
let arr1: (string | number)[] = [2,3,4,'a']  //有括号:字符串和数字数组
let arr3: number | string[] = 123            //无括号:数字或字符串数组
2.
let arr2: (number | Array<string>)[] = [['a','b','c'],2,6] //嵌套数组

类型别名

定义一个可以复用的类型别名,用在对象身上得注意了,对象中没有你定义的类型数据会报错。

type CustomArray = (number | string)[] let arr4: CustomArray = [1,2,3]

函数类型(1. 单独指定参数、返回值类型 2. 同时指定)

单独

{}和()中间的是返回值类型定义

function addOne(num1: number,num2: number): number { return num1 + num2 } 
const addTwo = (num1: number,num2: number): number=>{ return num1 + num2 }

同时

const add: (num1:number,num2: number) => number = (num1,num2) =>{ return num1 + num2 }

函数没有返回值,可以不写void,自定义可选参数

function greet(name: string): void{}
const sayHi = (content: string) =>{} // ts函数参数必须全传,需要自定义可选参数,?需要放在最后面的参数
const println = (name: string,gender?: string):void => {}

函数重载

//定义接受一个参数或三个参数或可接受
function makeDate(timestamp: number): Date;
function makeDate(m: number, d: number, y: number): Date;function makeDate(mOrTimestamp: number, d?: number, y?: number): Date {if (d !== undefined && y !== undefined) {return new Date(y, mOrTimestamp, d);} else {return new Date(mOrTimestamp);}}const d1 = makeDate(12345678);
const d2 = makeDate(5, 5, 5);
const d3 = makeDate(2,5) //这里不能确定第二个参数是谁的,报错

Object类型

  1. 对象类型,必须指定数据的类型,指定了类型必须定义。
  2. type Person = {name: string,age: number,// sayHi: (content: string)=> voidsayHi(content: string): void,girlFriend?: string  //可选
    }let obj: Person = {name:'老六',age: 18,sayHi(content){console.log('学ts');}
    }obj.girlFriend = '五开人'
    console.log(obj);
  3. 假如我没有定义obj.gril,但是我去访问它, ts访问不存在的类型会报错。
  4. 要增加类型,可以在类型定义里面 girlFriend?: string
  5. ts就像写注释给编辑器看,不写注释你就不是好的程序员。
  6. 有个好处就是会有提示,访问没有的属性也会报错。
  7. 定义type可以让我们在编写对象时更简便: let obj2: Person = { }

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

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

相关文章

【linux服务器】大语言模型实战教程:LLMS大模型快速部署到个人服务器

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 说到大语言模型相信大家都不会陌生&#xff0c;大型语言模型(LLMs)是人工智能文本处理的主要类型,也现在最流行的人工智能…

【数据结构】线性表与顺序表

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

Python入门第三课

# 入门第三课 # 关键字 if and or in not in ! car g print(car g) print(car dd) if car ! hh:print("wlcome to here ") age 33 print(age 33) print(age 44) age1 44 if age >0 and age1 > 0:print("nihao") if age >0 or age1 > …

【算法】分布式共识Paxos

一、引言 在分布式系统中&#xff0c;一致性是至关重要的一个问题。Paxos算法是由莱斯利兰伯特&#xff08;Leslie Lamport&#xff09;在1990年提出的一种解决分布式系统中一致性问题的算法。 二、算法原理 Paxos算法的目标是让一个分布式系统中的多个节点就某个值达成一致。算…

【Django】前端技术-网页样式表CSS

文章目录 一、申明规则CSS的导入方式行内样式内部样式外部样式 二、CSS的选择器1. 基本选择器标签选择器&#xff1a; 选择一类标签 标签{}类选择器 class&#xff1a; 选择所有class属性一致的表情&#xff0c;跨标签.类名{}ID选择器&#xff1a;全局唯一 #id名{} 2.层次选择器…

束搜索(与贪心、穷举对比)

一、贪心搜索 1、基于贪心搜索从Y中找到具有最高条件概率的词元&#xff0c;但贪心可能不是最优解 2、比如 &#xff08;1&#xff09;贪心&#xff1a;.5*.4*.2*.1.0024 &#xff08;2&#xff09;另外&#xff1a;.5*.3*.6*.6.0054 二、穷举搜索 &#xff08;1&#xff0…

Transformer中的Multi-head Attention机制解析——从单一到多元的关注效益最大化

Transformer中的Multi-head Attention机制解析——从单一到多元的关注效益最大化 Multi-head Attention的核心作用 组件/步骤描述多头注意力机制&#xff08;Multi-head Attention&#xff09;Transformer模型中的关键组件&#xff0c;用于处理序列数据功能允许模型同时关注到…

数据库 执行sql添加删除字段

添加字段&#xff1a; ALTER TABLE 表明 ADD COLUMN 字段名 类型 DEFAULT NULL COMMENT 注释 AFTER 哪个字段后面; 效果&#xff1a; 删除字段&#xff1a; ALTER TABLE 表明 DROP COLUMN 字段;

科普文:分布式架构中的三高:高并发、高性能、高可用

关于高并发 高并发场景 互联网应用以及云计算的普及&#xff0c;使得架构设计和软件技术的关注点从如何实现复杂的业务逻 辑&#xff0c;转变为如何满足大量用户的高并发访问请求。 一个简单的计算处理过程&#xff0c;如果一旦面对大量的用户访问&#xff0c;整个技术挑战就…

人工智能类——计算机科学与技术

计算机科学与技术是一个非常大的门类。目前计算机科学与技术类招生的专业主要有计算机科学与技术、软件工程、网络工程、信息安全、物联网工程等&#xff0c;后面的几个专业是计算机科学与技术的重要分支&#xff0c;而这个门类的其他分支并没有单列出来一个本科专业&#xff0…

mongodb 数据库修复指南

mongodb 数据库修复指南 原因&#xff1a;mongodb 数据库因为断电导致数据库损坏&#xff0c;服务无法启动&#xff0c;但是mongodb 的数据库的数据都在本地&#xff08;这个是重点&#xff0c;docker 安装一定要挂载/data/db到宿主机&#xff09; 找一台windows电脑&#xff0…

leetcode热题系列章节11

378. 有序矩阵中第K小的元素 给定一个 n x n 矩阵&#xff0c;其中每行和每列元素均按升序排序&#xff0c;找到矩阵中第k小的元素。 请注意&#xff0c;它是排序后的第k小元素&#xff0c;而不是第k个元素。 示例: matrix [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k …

【数据结构】顺序表(c语言实现)(附源码)

​ &#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;数据结构 目录 前言 1.顺序表的概念与结构 2.顺序表的分类 3.顺序表的实现 3.1 结构定义及方法的声明 3.2 方法的实现 3.2.1 初始化 3.2.2 销毁 3.2…

Could not find a package configuration file provided by “gflags_catkin“ 的参考解决方法

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04 ROS-Noetic 一、问题描述 CMake Error at /***/devel/share/catkin_simple/cmake/catkin_simple-extras.cmake:38 (find_package):By not providing "Findgflags_…

Nvidia GPU驱动安装报错显卡与驱动不兼容(本身兼容)

最近在公司服务器上遇到了一个特别离谱的问题&#xff0c;就是在本身在nividia官网上面下载的匹配的显卡驱动&#xff0c;安装之后采用下面命令查看驱动显示&#xff1a; $ nvidia-smiNVIDIA-SMI has failed because it couldnt communicate with the NVIDIA driver. Make su…

深度强化学习 ①(DRL)

参考视频&#xff1a;&#x1f4fa;王树森教授深度强化学习 前言&#xff1a; 最近在学习深度强化学习&#xff0c;学的一知半解&#x1f622;&#x1f622;&#x1f622;&#xff0c;这是我的笔记&#xff0c;欢迎和我一起学习交流~ 这篇博客目前还相对比较乱&#xff0c;后面…

web服务器搭建练习

练习要求&#xff1a; 搭建一个web服务器&#xff0c;客户端通过www.haha.com访问该网站时能够看到内容:this is haha 完成过程&#xff1a; 1. 创建新ip&#xff0c;重启ens [rootlocalhost ~]# nmtui [rootlocalhost ~]# nmcli connection up ens1602.创建目录&#xff0…

Java面试八股之Spring boot的自动配置原理

Spring boot的自动配置原理 Spring Boot 的自动配置原理是其最吸引人的特性之一&#xff0c;它大大简化了基于 Spring 框架的应用程序开发。以下是 Spring Boot 自动配置的基本原理和工作流程&#xff1a; 1. 启动类上的注解 Spring Boot 应用通常会在主类上使用 SpringBoot…

微信支付v3

查看证书序列号 引用&#xff1a;https://wechatpay-api.gitbook.io/wechatpay-api-v3/chang-jian-wen-ti/zheng-shu-xiang-guan https://myssl.com/cert_decode.html # 查看证书序列号openssl x509 -in apiclient_cert.pem -noout -serial 微信支付java <dependency>…

2.3 openCv -- 对矩阵执行掩码操作

在矩阵上进行掩模操作相当简单。其基本思想是根据一个掩模矩阵(也称为核)来重新计算图像中每个像素的值。这个掩模矩阵包含的值决定了邻近像素(以及当前像素本身)对新的像素值产生多少影响。从数学角度来看,我们使用指定的值来做一个加权平均。 具体而言,掩模操作通常涉…