typescript 入门

TypeScript从入门到高级 TypeScript是由微软开发的开源编程语言,它是JavaScript的一个超集,为JavaScript添加了类型系统和其它面向对象的编程特性。):泛型允许在定义函数、接口或类的时候不预先指定具体的类型,而在使用的时候再指定具体的类型,提高了代码的复用性和灵活性。:TypeScript通过静态类型检查、接口、泛型等特性,提高了代码的可维护性和可扩展性,特别适合大型项目的开发。:理解ES6中的类概念,学习如何在TypeScript中定义类、构造函数、成员变量、成员方法、继承( 阅读详情

typescript的作用是让javascript 这种弱类型语言在编译阶段进行类型检测,规范代码,减少运行时报错的可能;

所以学习ts的方法应该在使用变量或者传参时先考虑他可能是什么类型, 在设计阶段就先考虑好类型,这种思路和以前有很大的不同,这是思路的转换至关重要;

类型的声明

1. 基本类型声明
    let str:string
    let num:number
    let boll:boolean   
    let a:any  // 当没想好是哪种类型时可以先用any声明为任何类型
    let sn:string|number // 多种类型使用'|'相连与'||'类似
    function add (a:number,b:number):number{
      return a + b
    }
    // void 表示函数没有返回值
    function print (firstName:string,lastName:string):void {
      console.log(firstName + lastName)
    }
2. 枚举类型声明

通过有意义的字符串映射没有意义的值
用法:通过关键字 enum 声明,一般首字母大写

    enum Color {Red,Green,Blue} // 相当于 enum Color {Red =0,Green =1,Blue=2}
    let c:Color = Color.Green // 1
3. 对象声明
    let arr:any[] 
    let arr1:string[]
    let arr2:number|string[]

    let obj:object
    let boj1:{name:string,height:number} // 必须是只含有name,height两个属性且属性值的类型也要匹配
    let boj2:{name:string,height?:number} // 必须含有name属性,可以没有height,如果定义了height属性,必须是number类型
    let boj3:{name:string,height:number,[propName:string]:any} // 必须含有name,height,可以设置其他属性,但是属性的key必须是string

学会以上声明你就可以在项目中使用ts了,但是如果你看别人的项目你会发现,为啥他们的写法还是看不懂,为啥要定义接口interface?

打个比方,如果你要做一个todo-list 项目,你需要对todoItem 进行增删改查,todoItem的类型是 {id:string,text:string,check:boolean}

    let todoList:{id:string,text:string,check:boolean}[] = []

    function addItem(todoItem:{id:string,text:string,check:boolean}):void{
      todoList.push(todoItem)
    }
    function change(todoItem:{id:string,text:string,check:boolean},index:number):void{
       todoList[index].check = true
    }
    function delItem(todoItem:{id:string,text:string,check:boolean},index:number):void{
      todoList.splice(index,1)
    }

这样写的弊端很明显,如果todoItem想要增加或者修改里面的类型就需要将以上三个方法内的定义分别修改,这里我们就需要接口了
用法 :关键字 interface + 名称首字母一般大写
interface TodoItem {
id:string,
text:string,
check:boolean
}
let todoList:{TodoItem }[] = []

    function addItem(todoItem:TodoItem):void{
      todoList.push(todoItem)
    }
    function change(todoItem:TodoItem,index:number):void{
      todoList[index].check = true
    }
    function delItem(todoItem:TodoItem,index:number):void{
      todoList.splice(index,1)
    }
4. 断言

在开发的过程中你会发现以下问题

    let name:string|number
    let len:number = name.length //这个ts会报错,因如果name是number类型是没有length属性的
    let len:number = (name as string).length // 我们可以告诉ts,这个name在这个地方就是string,不用检测他的类型可能性了

断言的意思就是,开发人员已经经过自己的判断,这肯定是他想要的类型,不需要去检测了.

TypeScript入门 TypeScript(简称 TS)是微软公司开发的一种基于 JavaScript (简称 JS)语言的编程语言。它的目的并不是创造一种全新语言,而是增强 JavaScript 的功能,使其更适合多人合作的企业级项目。TypeScript 可以看成是 JavaScript 的超集(superset),即它继承了后者的全部特性,并在此基础上增加了静态类型检查和其他一些特性。静态类型检查:TypeScript在编译阶段就能够发现并提示潜在的代码错误,使开发者在编码过程中更加高效、安全和可靠。 阅读详情

相关推荐

TypeScript 入门看这一篇就够了!

目录这里写目录标题简介什么是 TypeScript为什么用 TypeScript编写和运行 TS 代码Node TSCDenotsconfig.json基本语法基本类型隐式显式组合类型类型别名对象类型(interface)接口作为函数参数类型数组类型泛型tuple(元组)总结 简介 我第一次使用 TypeScript 是16年在读研的时候,学校的算法课是使用 TypeScript 实现的。当时只知道 TypeScript 是 Angular 开发的必备语言,没想到还能这么通用。后来在写作业的时候,发现 Ty

张旭乾 - 全栈工程师/海归 2276

枚举类型

我的目录1、枚举类型2、使用foreach循环处理枚举值3、具有数据域,构造方法和方法的枚举类型 1、枚举类型 枚举类型定义了一个枚举值的列表。枚举类型的值类似一个常量,因此,按惯例拼写都是大写字母。枚举类型的命名类似一个类,每个单词首字母大写。 enum Day{SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,STAURDAY}; Day day;...

乐以风的博客 942

掌握TypeScript的50堂课:从入门到专家

本书《TypeScript in 50 Lessons》是一本专为JavaScript程序员准备的TypeScript入门读物,由经验丰富的软件架构师Stefan Baumgartner撰写。书中不仅涵盖了基础类型到高级概念,如infer关键字的讲解,而且包含许多现实世界的例子和技巧,旨在帮助读者快速成为TypeScript专家。本书获得了业界专家的高度评价,并附有详细的目录,方便读者查找和学习。

weixin_26850469的博客 471

前端系列三十一:TS枚举类型跟元组

枚举类型: 枚举的功能类似于字面量类型+联合类型组合的功能,也可以 ' 表示一组明确的可选值 ' 枚举:' 定义一组命名常量 ' , 它描述一个值, 该值可以是这些命名常量的一个 定义枚举写法: enum Direction { Up, Down,Left,Right } function changeDirection( direction: Direction ) { console.log( direction ) } 解释: 1.使用'enum' 关键字定义枚举...

WebYanXin的博客 1195

顶刊级科研绘图技巧

顶刊级科研绘图技巧

2401_89571885的博客 1157

OSCS开源安全周报第13期:Exchange 高危漏洞公开

OSCS 社区共收录安全漏洞31个,公开漏洞值得关注的是 Apache Commons JXPath 存在代码执行漏洞(CVE-2022-41852),Microsoft Exchange 远程代码执行漏洞(ProxyNotShell(CVE-2022-41040),Apache Tomcat 条件竞争漏洞(CVE-2021-43980),FasterXML jackson-databind 小于2.14.0-rc1拒绝服务漏洞(CVE-2022-42003)。

OSCS开源安全社区 4198

【TypeScript】枚举类型和泛型的详细介绍

【TypeScript】枚举类型和泛型的详细介绍

m0_64590669的博客 482

突发E层(Es层):短波通信中的“意外惊喜”与“隐形杀手”全解析

本文深入解析了突发E层(Es层)在短波通信中的双重作用,既可能带来超远距离通信的“意外惊喜”,也可能成为通信链路的“隐形杀手”。通过分析Es层的形成机制、时空分布规律及实战应用技巧,帮助通信爱好者与专业人员更好地利用或应对这一电离层现象,提升短波通信的可靠性与效率。

weixin_30443813的博客 824

这些年总结下来的代码规范

​ 驼峰命名法:camelNomenclature,简称小写开头 ​ 帕斯卡命名法:PascalNomenclature,简称大写开头 ​ 全大写加下划线:ALL_UPPER,简称全大写 客户端主要使用C#和lua,共有规则如下: ​ 常量用全大写加下划线,变量用驼峰 ​ 函数、类、结构用Pascal,参数用驼峰 ​ 数组类型变量带List后缀,字典类型变量带Dic后缀 ​ delegate类型,用Pascal带Delegate后缀,它的实例带Callback后缀 ​ 枚举用Pascal带Enum后.

qq_27636823的博客 361

用AG9311芯片DIY一个多功能Type-C扩展坞:从原理图到PCB布局的保姆级指南

本文详细介绍了如何利用AG9311芯片DIY多功能Type-C扩展坞,涵盖从原理图设计到PCB布局的全过程。AG9311芯片作为高性价比的Type-C控制器,支持HDMI 2.0、USB 3.0、PD快充和千兆网口,适合硬件爱好者打造个性化扩展坞。文章还提供了调试技巧和进阶优化建议,帮助读者轻松完成项目。

weixin_42520909的博客 405

OpenClaw进阶实战(十二):电商比价工作流(一)——数据采集与竞品监控

本文介绍了基于OpenClaw的电商比价系统实现方案。该系统可自动化监控淘宝、京东、拼多多等平台的竞品价格波动,包含以下核心功能: 多平台价格采集:通过各平台官方API(淘宝客、京东联盟、多多进宝)获取商品价格,并提供模拟数据模式便于测试 数据存储与分析:使用SQLite存储历史价格数据,支持查询最近价格和价格变化趋势 模块化设计:采用技能化架构,分离了平台适配层(淘宝/京东/拼多多)、数据存储层和核心业务逻辑 扩展性:预留了价格波动告警接口(钉钉通知),为后续动态调价提供数据支撑 系统特点: 支持真实AP

PeterPan的博客 214

枚举大小写_不区分大小写的枚举

在developerWorks,我们一直在努力回答您的问题并满足您的需求。 最近,我收到了爱荷华州得梅因市的汤米琼斯的以下来信: 尊敬的瑞吉斯: 有什么办法可以在XML模式中进行不区分大小写的枚举? 如果元素的有效值为“ red”,“ blue”和“ green”,则我们希望用户使用大小写字母的任意组合作为这些值。 在XML Schema规范中找不到任何方法可以定义不区分大小写的枚举。...

cuyi7076的博客 4197

Claude Code Skills 入门:内置技能与自定义技能开发

│ Skill 的特点 │1. 封装性:把复杂操作封装成简单命令2. 可复用:一次定义,随处使用3. 可定制:支持参数传入4. 可发现:通过 /skill-name 方式调用打个比方,如果说 Claude Code 的基础工具是「原材料」,那 Skills 就是「预制菜」——只需要简单加热(调用),就能得到成品(结果)。你可以创建自己的 Skill 来封装常用操作。Skill 支持参数,通过。

gaoxiang_120的专栏 671

TypeScript快速入门

要创建对象,必须要先定义类,所谓的类可以理解为对象的模型,程序中可以根据类创建指定类型的对象,举例来说:可以通过Person类来创建人的对象,通过Dog类创建狗的对象,通过Car类来创建汽车的对象,不同的类可以用来创建不同的对象。上例中,test函数有一个参数类型不确定,但是能确定的时其返回值的类型和参数的类型是相同的,由于类型不确定所以参数和返回值均使用了any,但是很明显这样做是不合适的,首先使用any会关闭TS的类型检查,其次这样设置也不能体现出参数和返回值是相同的类型。

Adios_0403的博客 2900

C# 上位机之海康工业相机开发(SDK)实战教程

海康工业相机的C#开发核心是基于MVS SDK的“初始化→枚举→连接→采集→释放”流程,其中图像回调处理和格式转换是关键。严格按照SDK文档处理设备类型(网口/USB)和像素格式;及时释放图像资源,避免内存泄漏;错误码是排查问题的重要依据(可参考SDK中的“错误码说明”文档)。掌握这些基础后,可结合机器视觉算法(如OpenCV)实现缺陷检测、尺寸测量等高级功能,构建完整的工业视觉系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3832

五、MT8168 音频驱动之SPEAKER

本章主要讲解MT8168平台的内部SPEAKER驱动配置。分为HP接法和LINE OUT接法。2.1.3 audio_custom_exp.h设置。2.1.4 mixer_paths.xml设置。2.2.3 mixer_paths.xml设置。2.1.2 ProjectConfig 设置。2.2.2 ProjectConfig 设置。2.2.1 deconfig设置。2.1.1 DTS设置。......

Joon2020的博客 1664

【好书推荐】TypeScript的入门指南 | 《TypeScript入门与实战》

TypeScript需要经过编译,输出JavaScript程序。今天为你推荐的书籍是《TypeScript入门与实战》。全书我推荐你关注的重点,我汇总了一张图,你可以参考下~,如果你是刚入门到新手,可以忽略这部分差别。,目前TypeScript的最新版本为。本书基于的TypeScript版本为。你好,我是小雨青年,一名程序员。

Code Metaverse 2541

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TypeScript 学习入门笔记

TypeScript 的编译器是基于 Node.js 的,因此我们首先需要安装 Node.js。安装 Node.js 之后,npm(Node.js 的包管理器)会自动安装,这对安装 TypeScript 至关重要。下载 Node.js: 前往 Node.js 官网,下载适合你操作系统的版本。建议选择“LTS(长期支持版本)”版本,稳定且适合大多数开发项目。

blues_C的博客 1966

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TypeScript 快速入门

TypeScript 是 JavaScript 的超集。它对 JS 进行了扩展,向 JS 中引入了类型的概念,并添加了许多新的特性。TS 代码需要通过编译器编译为 JS,然后再交由 JS 解析器执行。TS 完全兼容 JS,换言之,任何的 JS 代码都可以直接当成 JS 使用。相较于 JS 而言,TS 拥有了静态类型,更加严格的语法,更强大的功能;TS 可以在代码执行前就完成代码的检查,减小了运行时异常的出现的几率;

大一点的小孩 1625

TypeScript从入门到精通

TypeScript是由微软开发的一种开源编程语言,它是JavaScript的超集,为JavaScript添加了可选的静态类型定义。自2012年发布以来,TypeScript已经成为现代Web开发的重要工具,被广泛应用于大型项目开发中。TypeScript作为JavaScript的超集,为现代Web开发提供了强大的类型系统和丰富的语言特性。基础知识:类型系统、变量声明、函数定义等核心概念高级特性:泛型、映射类型、条件类型等强大功能面向对象:类、接口、继承等OOP概念在TypeScript中的应用。

fuzi1024的博客 805

Typescript入门

TypeScript 包含了 JavaScript 的所有特性,并且还增加了一些额外的功能,如静态类型检查等。TypeScript 是 JavaScript 的。

Nanki_的博客 1017

Typescript从入门到进阶

TypeScript 是 JavaScript 的超集,由微软开发,旨在通过添加静态类型、接口、类和模块化等特性,提高代码的可读性和可维护性。- **静态类型**:允许开发者在编译时检查类型错误,减少运行时错误。 接口(Interfaces)** :定义对象的结构和属性。 类(Classes)** :支持面向对象编程,包括继承和多态。泛型(Generics)** :允许编写与多种类型一起工作的组件。 模块(Modules)** :支持代码的组织和复用。 装饰器:用于增强类的功能

警警的博客 1575

TypeScript 入门

TypeScript 是一种由微软开发的自由和开源的编程语言,它是 JavaScript 的一个超集,扩展了 JavaScript 的语法。

Xxxxxl17的博客 856
上一篇: web 页面性能优化
下一篇: npm 入门,基本指令
wakangda
博客等级 码龄8年 446粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值