TS学习笔记 类型标签 联合类型 枚举类型 泛型 类型别名
创始人
2024-01-30 05:16:09

个人理解总结:

  • js天生没有编译和类型检查的束缚 灵活好上手 结合项目使用时也可以做到热更新提升开发体验。
    (需要编译的JAVA以前开发DEBUG很麻烦但现在有了容器编排技术,也可以实现类似效果)

  • TS是JS的超集,添加了类型标注,不能直接在浏览器或Node中运行(Deno可以支持),其他情况都需要TSC转译为JS后执行。npm install tsc -g

  • TS可以提升代码的健壮性,可维护性,可扩展性与可读性

  • 变量添加类型标注let i:number
    参数添加类型标注function F(a:number){}
    可选参数function F(b?:number){}
    函数返回值类型标注function F():number{}

  • 联合类型let i:number|string;
    枚举类型let i:1|2|3
    类型别名type numStr = number|string;function F(userId:numStr){};

  • 泛型 传递给函数的类型占位符 调用函数时将实际指定的参数类型链式传递给参数类型和返回值类型
    function identity(value:T ,message:U):T{ return value }; identity(68,'跳动的世界线');

  • 回调函数function F(callback:(data:string)=>void){}

  • 抽象继承封装多态待补全…

代码实例:

JS写法

//在JS中合法  JS中的变量和函数类型都是动态的  可以隐式转换  
function multiply(a,b){return a*b;//这里在执行中会将'1'隐式转换为1
}
multiply('1',2)

TS添加类型标注

//在TS中添加参数类型标签  不加时默认是any  此时TS不进行类型检查
function multiply(a:number,b:number){return a*b;
}
multiply('1',2)//TS中这里不符合语法规范  就会在运行前报错  提前发现错误

在这里插入图片描述
TS可选参数

function multiply1(a:number,b?:number){//添加? TS识别为参数可选 空参默认传undefinedif(b==undefined) b=1 //return a*b;
}

TS函数返回值添加类型标注

function multiply2(a:number,b?:number):number{//添加函数返回值类型标签  无返回值时标记为voidif(b==undefined) b=1 //return a*b;
}

TS类型推导 变量初值和固定类型函数返回值的情况下 不用手动添加类型 TS会自动推导

let i:number = 1
let str:string = '你好'let i = 1
let str= '你好'

数组与元组

// 定义数组
let arr:number[];
let arrOfArry:number[][];
// 定义元组  类似数组  但元素个数与类型确定
let point:[number,number,number]
point = [1,2,3]

在这里插入图片描述

联合类型

let color:number|string;
color = 'red';
color = 0x111;

在这里插入图片描述
类型别名

type numStr = number|string;
function F(userId:numStr){};

枚举类型 限制变量取值

let gender:'male'|'female'
let dice:1|2|3|4|5gender = 'male'
gender = 'female'
dice = 1
dice = 2

在这里插入图片描述

接口 定义接口创建的对象缺少或多出属性都会报错

interface User{name:stringid:number
}
let user:User = {name:'222',id:111,
}

**函数 限制函数必须有特定参数和返回值,多用于回调函数 **


function getUserName(callback:(data:string)=>void){//限制回调函数没有返回值且参数必须为string// ...
}
getUserName((data)=>{alert(data);
})

在这里插入图片描述
泛型 泛型变量是传递给函数的类型占位符 调用函数时将实际指定的参数类型链式传递给参数类型和返回值类型

//T U为泛型变量,它是传递给identity函数的类型占位符
function identity(value:T ,message:U):T{return value
}
identity(68,'跳动的世界线')T (Type) 表示类型;
K (Key) 表示对象中键的类型;
V (Value) 表示对象中值的类型;
E (Element) 表示元素类型。

tsconfig.json配置

{"compilerOptions":{"watch":true."removeComments":true."target":"es6"."noImplicitAny":true."strictNullChecks":true.//不允许给任意类型变量赋null undefined}
}

类型定义扩展包 第三方插件添加完善的类型支持

npm install three --save
npm install @types/three --save

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
安徒生童话有哪些 安徒生童话的... 从德国汉堡港乘轮船渡波罗的海抵丹麦王国,就到了安徒生的祖邦。安徒生(1805-1875)以童话作品闻...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
安徒生童话有哪些 安徒生童话的... 从德国汉堡港乘轮船渡波罗的海抵丹麦王国,就到了安徒生的祖邦。安徒生(1805-1875)以童话作品闻...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...