【5】【TypeScript】(TypeScript=Type+JavaScript)

news2024/11/24 19:05:42

Typescript 相比js特有

·类型系统;
·对象的接口
·DOM操作时候需要进行类型断言
上面三个实际是类型系统的三处体现
·枚举
·js中,-号可以强制转换为数值,ts不行

所有合法的js都是ts

1、安装

安装进度卡住可以用淘宝镜像 (在后面加 --registry=http://registry.npm.taobao.org)                     

tsc -v 查看是否安装成功

 2、编译并运行TS代码

手动编译 (注意要把ts文件放在项目目录第一级)

 

 设置类型编译后两个文件产生如下区别

//1.ts

//1.js

总结:

创建ts文件->编译ts->运行js

简化复杂的过程:

1、在idea中勾选这个选项

好像不行

 1、使用ts-node包

安装

直接用ts-node 1.ts运行文件

常用类型概述

更改类型js会报错 只能在运行后才能发现错误

 但是ts就可以在编译时候提示错误

 类型注解:

 此处number为类型注解,作用:为变量添加类型约束,比如,上述代码中,约定变量age的类型为number(数值类型)

数组类型

推荐下图上面的红框里类型+[ ]的写法,下面的写法存在但是不推荐

let numbers: number[] = [1,3,5]
for (let number of numbers) {
    console.log(number);
}

 混合类型:

在括号里用竖线隔开多个类型使得数组中可以出现多种类型的变量

类型别名:

当混合类型很长后,每次书写就不方便,此时可以使用别名代替混合类型

常有基础类型综述:

js原有:

原始类型:

number
string
boolean
null
underfined
symbol

对象类型:object:(包括,数组,对象,函数等对象)

ts新增:

联合类型:

自定义类型(类型别名)

接口

元组
字面量类型
枚举
void

any

原始类型的基本使用:

                  

函数类型

1、单独指定参数、返回值的类型

函数表达式 

 

2、同时指定参数、返回值的类型:

void类型(js中没有)

  

使用函数实现某个功能,参数可传也可以不传:

可选参数:在可传可不传的参数名称后面添加(问号)

注意顺序,可选参数只能排在必选参数后面

对象类型(就是在描述对象的结构)

对象类型的写法 描述对象的属性和方法

let person:{name:string;age:number;sayHi():void}={
    name:'jack',
    age:19,
    sayHi(){}
}

 其中sayHi():void 也可以写成sayHi:()=>void

也可以把括号里分号去掉以换行分割属性

let person:{
    name:string
    age:number
    sayHi():void}={
    name:'jack',
    age:19,
    sayHi(){}
}

对象中的可选属性

与前面函数可选参数一样都是加问号

function myAxios(config:{url:string;method?:string}){}
myAxios({
    url:''
})

接口

描述对象的类型达到复用的目的

实际上就是将对象名后面的括号单独拿出来写成接口

interface IPerson{
    name:string
    age:number
    sayHi():void
}

let person2:IPerson = {
    name:'jack',
    age:18,
    sayHi() {
    }
}

interface(接口)和type(类型别名)的对比:

相同点:都可以给对象指定类型

不同点:接口,只能为对象指定类型。类型别名,不仅可以为对象指定类型,实际上可以为任意类型指定别名。

interface声明如果重名会自动合并属性,而type声明重复则会报错

type IPerson={
    name:string
    age:number
    sayHi():void
}

let person2:IPerson = {
    name:'jack',
    age:18,
    sayHi() {
    }
}

接口继承:

当接口之间出现重合部分,为了避免复写,可以直接继承父类重复

interface Point2D {x:number;y:number}

interface Point3D extends Point2D{
    z:number
}
let p3:Point3D={
    x:1,
    y:0,
    z:3
}

一个接口继承另外一个接口的含义:这个接口具有父类接口里的所有睡醒和方法

元组类型

当数组中只有两个元素时候,因为数组无法定死数量,所以这时候可以用元组

let position1:[number,number]=[32,8]
let position2:[number,string]=[32,'8']

类型推论:

在Ts中某些场景,类型推论机制会自动识别类型,此时类型注解可以省略不写

并且类型检查和保护机制也存在

发生类型推论的2种常见场景:1声明变量并初始化的时候 2决定函数返回值时候

 如果只声明没有初始化推荐还是手动指定类型

 函数参数的地方一定要写类型,返回类型可以省略

推荐能省略类型就省略类型,充分利用类型推论机制,提高开发效率

类型断言

 由于类型太宽泛,对象无法获取带a标签的href属性值

这时候可以用as关键字来类型断言

const aLink = document.getElementById('link')as HTMLAnchorElement
var href = aLink.href;

另一种方法是在document前面加<>里面写类型

类型可以通过在浏览器里输出标签的对象来查看,也可以直接打比如a标签就是HTML+a的单词类型

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

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

相关文章

Spring Cloud Hystrix有什么作用?

在微服务架构中&#xff0c;通常会存在多个服务层调用的情况&#xff0c;如果基础服务出现故障可能会发生级联传递&#xff0c;导致整个服务链上的服务不可用&#xff0c;如图1所示。图1 服务故障的级联传递在图1中&#xff0c;A为服务提供者&#xff0c;B为A的服务调用者&…

反欺诈(羊毛盾)API有什么作用?

肯定很多企业、商家都遭受过羊毛党的侵入&#xff0c;比如恶意注册、刷单、领用的行为。羊毛党具体有哪些危害呢&#xff1f; 羊毛党的危害 虚假用户裂变&#xff1a;识别在游戏解锁、红包裂变、助力砍价、电商拼团等用户拉新活动中作弊行为。虚假登录注册&#xff1a;防止机…

Java基于springboot大学生宿舍寝室考勤人脸识别管理系统

简介 Java基于springboot开发的大学生寝室管理系统宿舍管理系统。学生可以查找寝室和室友信息&#xff0c;可以申请换寝室&#xff0c;申请维修&#xff0c;寝室长提交考勤信息&#xff08;宿管确认学生考勤信息&#xff09;&#xff0c;补签&#xff0c;查看寝室通报&#xf…

FPGA纯verilog代码实现图像缩放,两种插值算法任意尺寸缩放,提供3套工程源码

目录1、设计思路和架构2、纯verilog代码搭建&#xff0c;不带任何ip3、双线性插值和邻域插值算法4、vivado和matlab联合仿真及结果5、工程代码1&#xff1a;720P原始摄像头采集显示6、工程代码2&#xff1a;720P缩小到800x600P显示7、工程代码3&#xff1a;720P缩放大1920x1080…

结合FPGA和NVIDIA Jetson Orin NX 系统的视觉边缘计算机

边缘计算机采用NVIDIA Jetson Orin NX模块化系统和高带宽图像采集卡&#xff0c;用于实时图像采集计算和人工智能处理。虹科与一家专注于高速图像采集和处理的以色列科技公司Gidel合作&#xff0c;今天宣布新的NVIDIA Jetson Orin NX™ 16GB模块化系统(SoM)将被添加到Gidel的Fa…

Jmeter接口测试流程详解(中科软测认证中心)

Jmeter接口测试流程详解&#xff08;中科软测认证中心&#xff09; 目录&#xff1a;导读 1、jmeter简介 2、jmeter安装 3、设置jmeter的中文界面 4、jmeter主要元件 5、Jmeter元件的作用域和执行顺序 6、jmeter接口测试流程步骤 1、jmeter简介 Jmeter是由Apache公司开…

【数据架构系列-02】从《数据中台能力成熟度模型》的发布,聊聊火了的中台

热点之所以会“热起来”,是由于万众瞩目的那份炽烈,也是因为无数双“手”的奋力炒作。所以,要穿过那“缭绕烟雾”看到本质,便需要冷静的头脑。 2023年1月4日&#xff0c;信通院发布了《数据中台能力成熟度模型》框架&#xff0c;不由让我浮想联翩&#xff0c;之后是不是还会出现…

Python采集豆某影片并作词云图分析

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 目录前言环境使用:模块使用&#xff1a;爬虫基本思路:代码展示绘制词云图尾语 &#x1f49d;环境使用: Python 3.8 解释器 Pycharm 编辑器 模块使用&#xff1a; import parsel >>> pip install parsel import…

二叉树26:二叉树的最近公共祖先

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a;236. 二叉树的最近公共祖先 题目&#xff1a; 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科…

网络工程师备考9章

第九章:网络操作系统与应用服务器 9.1 考点分析 ​​​​​​​ 注:MCSE、RHCE基础:微软和红帽的系统工程师的内容都纳入到一章里;我们要学的服务器类型非常多,最重要的罗列下来,总结起来就是3D+I; 9.1.1 网络操作系统 9.2 安装过程 略 9.3 Windows Server 2008 R2 本…

创新科技引领清洁新标准,CEYEE希亦洗地机重新定义深度清洁

后疫情时代&#xff0c;随着人们健康意识的增强&#xff0c;家庭清洁卫生意识逐渐深入人心&#xff0c;大家对于清洁家电的选择也不再局限于基础功能&#xff0c;而是更注重智能化、健康化、便捷性、多功能等维度。创新型科技新消费品牌「CEYEE希亦」也由此应运而生&#xff0c…

SpringCloud-Eureka

1.Spring Cloud是什么&#xff1f; SpringCloud是一系列框架的有序集合。【包含了开发所需的其他的框架】 它利用SpringBoot的开发便利性&#xff0c;巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务注册、服务发现、配置中心、消息总线、负载均衡、断…

如何安装python运行环境,想学python需要安装什么

这篇文章主要介绍了安装python程序后要进行什么设置&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 1、使用python需要安装哪些软件 《Python 3.9.7软件》百度网盘资源免费下…

浅析DDOS攻击及防御

如今&#xff0c;信息技术的发展为人们带来了诸多便利&#xff0c;无论是个人社交行为&#xff0c;还是商业活动都离不开网络。但是&#xff0c;网络空间在创造机遇的同时&#xff0c;也带来了威胁&#xff0c;其中 DDOS 就是最具破坏力的攻击。经过这些年的不断发展&#xff0…

QT/C++——文件和进程线程编程

目录 一、文件普通读写和流式读写 二、目录遍历和文件属性读写 三、进程 四、线程 五、线程同步 六、线程互斥 一、文件普通读写和流式读写 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTextEdit> #include <QLineEdit> #include…

iPhone彻底删除的重要照片怎么找回来?三招找回被删照片!

要说iPhone手机占用储存空间最多的是什么&#xff1f;照片&#xff0c;相信是大部分苹果手机用户的回答。 iPhone强大的拍照技术&#xff0c;拍了很多照片&#xff0c;却十分占用内存。在清理照片时&#xff0c;为了快速释放内存&#xff0c;快速滑动批量删除照片。 我们知道&…

C++ 标准库 常用算法总结(排序、合并、搜索和分区)

本系列文章介绍了所有的STL常用的算法。这些算法通常都有不同的功能&#xff0c;例如&#xff1a;排序元素算法{sort()、stable_sort()、nth_element()}、 查询元素算法{find()、find_if()、find_if_not()、find_end()、find_first_of()、adjacent_find()}、 复制元素算法{co…

Android 分区存储

1.Android存储 Android存储分为内部存储和外部存储&#xff08;外部存储并不是指SD存储卡或外部硬盘&#xff09;。 ①内部存储 用于Android系统本身和应用程序的存储区域&#xff0c;比如手机的/system/、/data/等目录。 如果没有这一块存储区域是无法运行Android系统和应用…

Windows Server 2022 中文版、英文版下载 (updated Jan 2023)

Windows Server 2022 正式版&#xff0c;2023 年 1 月更新&#xff0c;持续更新中… 请访问原文链接&#xff1a;https://sysin.org/blog/windows-server-2022/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org 此次发布更新…

如何设置 Excel 的行标题

Excel的行标题 打开或关闭Excel标题行Excel中的标题行格式选项Microsoft Excel工作表可以容纳一百万行,其中包含数字或文本数据集。行标题是位于工作表第1列左侧的灰色列,其中包含数字(1、2、3等),有助于识别工作表中的每一行。 尽管列标题是灰色的行,但它通常是字母(A、…