当前位置: 首页 > news >正文

TypeScript基础知识

TypeScript基础知识

  • 一、什么是TypeScript?有哪些特点?怎么下载TypeScript?
  • 二、语法
  • 三、类型推断&类型注解&类型断言 as
    • 3-1类型推断
    • 3-2类型注解
    • 3-3. 类型断言 as
  • 四、TypeScript基本数据类型有哪些?
    • 4-1 基础数据类型
    • 任意类型:any;
    • 空值或者undefined:void(通常函数没有返回值使用);
    • 4-2 数组&元祖&&枚举&&联合数据类型
  • 五、TypeScript高级数据类型有哪些?
    • 5-1 函数 function
      • 1.直接在参数上定义函数类型;
      • 2.使用interface去定义函数类型
      • 3.使用type定义函数类型
    • 5-2 接口 interface:都是抽象的结构 用implement实现
    • 5-3 泛型:
    • 5-4 类

一、什么是TypeScript?有哪些特点?怎么下载TypeScript?

TypeScript 是 JavaScript 的类型的超集,支持ES6语法,支持面向对象编程的概念,如类、接口、继承、泛型等。

  • 安全兼容JavaScript,是JavaScript的超集;
  • 引入类型系统,可以尽早定位错误位置,帮助提升开发效率;
  • 先进的JavaScript,支持JavaScript的最新特性;
  • TypeScript在社区的流行度越来越高,他非常适用于一些大型项目,也非常适用于一些基础库,极大地帮助我们提升了开发效率和体验。
npm i -g typescript
tsc -v

二、语法

TypeScript 的语言由语法、关键字、类型注释组成
语法:

let 变量:类型;
let 变量:类型 = 值;
function fn(参数:类型,参数:类型):类型 {
}

变量命名规则
★变量名称必须是字母或数字。
★不能以数字开头名称。
除下划线(_)和美元($)符号外,它不能包含空格和特殊字符。

三、类型推断&类型注解&类型断言 as

3-1类型推断

let str ="abc";
str=10;// ts报错,原因ts推断str的变量为string类型,不能赋值为number

3-2类型注解

let str:string ="abc";

3-3. 类型断言 as

let arr1:number[]=[1,2,3];
const result = arr1.find(item=>item>2) as number;
console.log(result*5);

四、TypeScript基本数据类型有哪些?

4-1 基础数据类型

let v1:boolean=true;
let v2:number=10;
let v3:string='abc';
let nu:null=null;
let un:undefined=undefined;

任意类型:any;

空值或者undefined:void(通常函数没有返回值使用);

4-2 数组&元祖&&枚举&&联合数据类型

// 数组
let numArr:number[]=[1,2,3];
let numArr2:Array<number>=[1,2,3];

// 元祖:就是指定个数和类型的数组
let person:[string,number,number?]=['Tom',12,9000];
let person2:[string,number,number?]=['Tom',12];

// 枚举
enum Color {
  Red,
  Green,
  Blue,
}
let c: Color = Color.Green;

// 联合数据类型
let v4:string|null=null; 
let v5:1|2|3=3;

五、TypeScript高级数据类型有哪些?

5-1 函数 function

  • 如果函数的没有写 return 的话,它的返回值类型就是 void;
  • 函数的约束有参数约束和函数返回值约束;
  • 参数可以设置默认值,可选,可变参,可选的放在右边,可变剩余参放在最后;

1.直接在参数上定义函数类型;

function demo(b:number,a=10,c?:number,...rest:number[]):number{
	return b*a;
}
demo(2)

2.使用interface去定义函数类型

interface AddFn{
	(a:number,b:number):number
}
let fn1:AddFn=(a,b){
 return a+b;
}
fn1(2,1)

3.使用type定义函数类型

type AddFn = (a:number,b:number)=>number;
let fn2:AddFn=(a,b)=>a+b;
fn2(1,2)

5-2 接口 interface:都是抽象的结构 用implement实现

更加详细的TS接口知识点击这里

用于定义对象类型

  • key后面加?表示可选属性;
  • key前面加readonly,表示只读。
interface Course{
	readonly name:string,
	price:number,
	isOnLine:boolean,
	students:string[],
}

let obj1:Course={
	name:"Vue3",
	price:100,
	isOnLine:true,
	students:['John','Mary']
}

5-3 泛型:

泛型也是一种类型,不同于string,number等具体的类型,它是一种抽象的类型,我们不能直接定义一个变量类型为泛型。
使用场景:我们在定义的时候不具体指定类型,而是泛泛地说一种类型,并在函数调用的时候再指定具体的参数类型。
约定俗称,泛型用T,K字母表示。

定义一个函数,他的作用就是返回传入对象中的某个值。
参数1:传入的对象;参数2:传入的key
问题:此时,函数的类型是取决于对象的属性值的类型,不是唯一固定的。所以使用泛型

function myFn<T>(a:T,b:T):T[]{
	return [a,b]
}
myFn<number>(1,2);
myFn('a','b');//这里ts类型推断T表示string类型

关于泛型的详细信息,点击这里进行了解

5-4 类

先来简单了解一下ES6中的类
类可以理解为对象的类型,不同的类可以用来创建不同的对象。
TS中的类

相关文章:

  • dm8 备份与恢复
  • 世优科技上榜2024年度《中国虚拟数字人影响力指数报告》
  • 如何从vue项目界面上看出来node.js版本
  • 练习 16 Web [极客大挑战 2019]LoveSQL
  • SpringBoot3整合RabbitMQ之一_消息生产者与消息消费者服务搭建
  • Vue之列表渲染
  • 【虚拟机】Vmware虚拟机桥接 Destination Host Unreachable 问题解决
  • 前端三剑客 —— CSS (第六节)
  • 浅谈HTTP
  • 用html写一个爱心
  • Unix 网络编程, Socket 以及bind(), listen(), accept(), connect(), read()write()五大函数简介
  • Linux第4课 Linux的基本操作
  • windows渗透信息收集
  • 【精品教程】护网HVV实战教程资料合集(持续更新,共20节)
  • Go语言时间编程
  • Android Studio 通过 WIFI 调试手机 app
  • CAD Plant3D 2024 下载地址及安装教程
  • 设计模式之建造者模式:灵活可扩展的对象创建过程
  • 华为审核被拒提示: 您的应用存在(最近任务列表隐藏风险活动)的行为,不符合华为应用市场审核标准
  • kvm、zstack导出qcow2文件
  • 对谈|《对工作说不》,究竟是要对什么说不?
  • 人民日报钟声:国际社会应共同维护科学溯源的正确方向
  • 体坛联播|欧冠巴萨3比3战平国米,柯洁未进入国家集训队
  • 人物|德国新外长关键词:总理忠实盟友、外交防务专家、大西洋主义者
  • 节前A股持续震荡,“五一”假期持股还是持币过节胜率更高?
  • “人工智能是年轻的事业,也是年轻人的事业”,沪上高校师生畅谈感想