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

Ts基础(一)—— 类型

类型

1、基础类型
2、数组类型

// 有两种写法,推荐第一种
let numbers: number[] = [1, 3, 5]   	
let numbers: Array<number> =  [1, 3, 5]

3、联合类型

let arr: (number | string)[] = [1, 3, 'a', 5, 'b']  // 带小括号
let arr1: number | string[] = ['a', 'b']    // 区分:表示arr1为number类型或string数组类型,二选一

4、类型别名(自定义类型)
使用场景:当同一类型(复杂)被多次使用时,可以使用类型别名,简化该类型的使用
使用方法:使用type关键字来创建类型别名

type CustomArray = (number | string)[]
let arr1: CustomArray = [1, 'a', 3, 'b']
let arr2: CustomArray = ['x', 6, 'y']

5、函数类型

// 1、单独指定参数和返回值的类型
// 声明式函数
function add(num1: number, num2: number): number {return num1 + num2
}
// 表达式函数
const add = (num1: number, num2: number): number => {return num1 + num2
}// 2、同时指定参数和返回值的类型,这种形式只适用于函数表达式
const add: (num1: number, num2: number) => number = (num1, num2) => {return num1 + num2
}

6、void类型

function greet(name: string): void {console.log("hello", name)
}greet('nike')

7、函数可选参数
注意:可选参数只能出现在参数列表的最后

function mySlice(start?: number, end?: number): void {console.log('起始', start, '结束', end)
}mySlice()
mySlice(1)
mySlice(1, 3)

8、对象类型
js中的对象是由属性和方法构成的,而ts中对象的类型就是在描述对象的结构

let person : { name: string; age: number; sayHi: () => void; greet(name: string): void } = {name: 'nike',age: 18,sayHi() {},greet(name) {}
}

9、接口
当一个对象类型被多次使用时,一般会使用接口interface来描述对象的类型,达到复用的目的

interface IPerson {name:stringage: numbersayHi(): void
}let person1: IPerson = {name: 'nike',age: 18,sayHi() {},
}let person2: IPerson = {name: 'jack',age: 19,sayHi() {},
}

10、interface(接口)和type(类型别名)的对比
相同点:都可以给对象指定类型
不同点:接口只能为对象指定类型,类型别名可以为任意类型指定别名

// interface IPerson {
// 	name: string
// 	age: number
// 	sayHi(): void
// } type IPerson = {name: stringage: numbersayHi(): void
}let person: IPerson = {name: 'nike',age: 18,sayHi() {},
}type NumStr = number | string

10、接口继承
如果两个接口之间有相同的属性或方法,可以将公共的属性或方法抽离,通过继承实现复用

interface Ponit2D { x: number; y: number }
interface Ponit3D { x: number; y: number; z: number }
// 优化成继承
interface Ponit2D { x: number; y: number }
interface Ponit3D extends Ponit2D { z: number }let p3: Ponit3D = {x: 1,y: 0,z: 0
}

11、元组(Tuple)
元组类型是另一种类型的数组,它确切的知道包含多少个元素,以及特定索引对应的类型
例如:地图坐标经纬度,有两个元素切都是数值类型

let position: [number, number] = [39.5436116.6346]

11、类型断言

// 两种写法
// 1、使用as关键词实现类型断言
const aLink = document.getElementById('link') as HTMLAnchorElement
// 2、使用<>语法
const aLink = <HTMLAnchorElement>ducument.getElementById('link')
// 技巧:在浏览器控制台,通过console.dir($0)打印DOM元素,在属性列表的最后面,即可看到该元素的类型。
http://www.dtcms.com/a/610572.html

相关文章:

  • ASC学习笔记0010:效果被应用时的委托
  • 深圳深圳建设网站wordpress网盘主题
  • 北京齐力众信网站建设自己怎么制作网站
  • 想找一家公司设计网站wordpress链接设置方法
  • LeetCode 424 - 替换后的最长重复字符
  • 数据结构--9:反射、枚举以及lambda表达式(了解即可)
  • Chartjs画二氧化碳浓度曲线
  • ts语法ts语法ts语法
  • 网站打开慢原因wordpress多站点 用户同步
  • 游戏被IP限制多开,如何在同一网络下用不同IP多开游戏?
  • MiniCPM-o 2.6 小参数挑战巨头 多模态直播流直达手机
  • 网站创建免费用户可信赖的手机网站设计
  • C++20--- concept 关键字 为模板参数提供了编译期可验证的约束机制
  • 厦门市住宅建设办公室网站php开发工具 wordpress
  • 用dw做一个个人网站营销网站建设优化
  • Catia中 零件 部件 产品
  • 自动化技术演进:从工具执行到认知决策,AI如何重塑业务自动化?
  • Springboot美食私厨在线预约管理系统5zf46km2(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 网站建设公司十大id导入不了wordpress
  • php网站开发权限管理wordpress随机幻灯片
  • 团购小程序区域化运营:多门店管理、配送范围设置与本地化活动开发
  • 企业网站备案时间荆州seo优化
  • 可以做积分的网站辽宁网站建设墨子
  • c语言编译环境和运行环境 | 深入理解C语言开发环境的构成与作用
  • 做违法网站犯法吗查建设标准网站
  • Tpri-Datavue前端插件系统文档
  • jmeter发送SOAP请求对WebService接口进行测试
  • 哪个网站做任务可以赚钱网站后台的数据库怎么做
  • 自建开发工具IDE(二)文件托拽读取——东方仙盟炼气期
  • 青岛 网站科技公司wordpress商品资源