首页 > 其他分享 >ts

ts

时间:2023-04-21 16:22:36浏览次数:24  
标签:console string number ts let 类型 log

第一章、定义变量

指定类型就在给这个变量赋值能赋值指定类型的值

// 1.声明变量,
let dName: string = '泰嘉'
console.log(dName);
// dName = 11 //这里报错 说这个number类型不能赋值给string

第二章、数据类型

// 1.字符类型 `` ''
let ddName: string = '貂蝉'

console.log('-------------------');
// 2. 数据类型[number]
let dAge: number = 12
dAge = 19.2
dAge = -10

console.log('-------------------');
// 3.布尔值类型[boolean] true /falsea 
let inSingDong: boolean = true
inSingDong = false

console.log('-------------------');
// 4.udefind 和null
let undef: undefined = undefined
let nul: null = null

console.log('-------------------');
// 5.数组[Array]
// 字符串了类型的数组
let footerArray: string[] = ['苹果', '香蕉', '车厘子', '栗子']
console.log(footerArray[0]);

// 数字类型的数组[number]
let priceArray:number[]=[12,12,23,34]


// 泛型类型的数组写法
let footerAge: Array<string> = ['大桥', '悟空', '典韦']

console.log('-------------------');
// 6.元组[tuple] :概念:就是一个规定了元素数量和每个元素类型的数组
let tupArray: [string, number, boolean] = ['你好', 11, true]
tupArray = ['哈哈', 23, false]
// 访问元组 和长度
console.log(tupArray[0]);
console.log(tupArray.length);

console.log('-------------------');
// 7.枚举[enum],定义标识符
// 创建性别枚举
enum Gender {
  boy = 1,
  giler = 2,
  qita=3
}
 console.log(Gender.boy);
 console.log(Gender.giler);
console.log(Gender.qita);
//  使用枚举
let userGender:Gender=Gender.boy
console.log(userGender);
if (userGender === Gender.boy) {
  console.log('相等');
} else {
  console.log('不相等');
}
 
console.log('-------------------');
// 8.任意类型[any] 一般用在dom操作
let getDom:any=document.getElementById('container')


// 9.没有返回值类型[void],一般用在没有返回值的函数
//9.1 有返值类型的函数
function sayName(): string{
  return '你好'
}
let res1 = sayName()

// 9.2 无返回值类型的函数
function sayHi2(): void {
  console.log('哈哈');
}
 sayHi2()


// 10.不存在值的类型[never] 一般用在抛出错误或者无限循环的函数返回值的类型
function test(): never {
   while (true) { }
}
 
function test2(): never {
  throw new Error('哈哈')
}
// never值可以赋值给任意类型的值


// 11.数据类型推断
// 概念:如果变量的声明和初始化时在同一行,可以省略变量类型的声明
// eg: 
let num1 = 19 //如果给变量重新赋值就会报错


// 12.联合类型
// 概念:表示取值可以为多种类型中的一种
// eg:
let Dom1: string | null = prompt('请输入内容')
console.log(Dom1);

第三章、函数

// 1.函数 有返回值类型
function sayHi(): string{
  return '哈哈'
}
let ret: string = sayHi();
console.log(ret);

// 2.函数形参 类型 无返回值
function jumpSan(cityName: string): void {
  console.log('你要去哪里'+cityName);
}
// 注意:
// 2.1 ts中实参和形参必须一致
jumpSan('昆明')


// 2.2 ts中形参和实参数量必须一致
jumpSan('南京')


// 2.3.可选参数 用?号表示可选参数不用传递
function sayHi1(num1?: number): void {
   console.log('数字'+num1);
}
sayHi1()
 

// 2.4 默认参数 可以不用传递实参,也可以传递参数,不传递参数使用默认参数
function number1(num1: number = 1, num2: number = 2): number{
  return num1+num2;
}
let res: number = number1()
console.log(res);

// 2.5 剩余参数 数量不确定的参数
function add(x: number, y: number, ...resFname: number[]) {
  // 创建一个求和变量,保存x+y的结果
  let result:number=x+y
  // 使用for of 循环数组里面剩余的元素
  for (let els of resFname) {
    result+=els
    console.log('结果是:'+result);
  }
}
add(1, 2)
add(1,2,4,54,64)
// 特点:
// 1.剩余参数 只能定义一个
// 2.剩余的参数只能定义为数组
// 3.剩余的参数只能定义在形参列表最后

第四章、类

class City{
  // 成员变量
  name: string
  age: number
  // 构造函数
  constructor(cname: string, cage: number) {
    this.name = cname
    this.age=cage
  }
  about() {
    console.log(`姓名:${this.name},年龄:${this.age}`);
  }
}
// 创建对象
let c1 = new City('李飞', 18);
console.log(c1.name);//访问变量
c1.about()//调用方法

标签:console,string,number,ts,let,类型,log
From: https://www.cnblogs.com/dexue/p/17340831.html

相关文章

  • 【前端可视化】ECharts 实现响应式图表
    响应式图片的实现步骤:1.图表只设置高度,宽度设置为100%或不设置。2.监听窗口的resize事件,即监听窗口尺寸的变化(需节流)。3.当窗口大小改变时,然后调用echartsInstance.resize改变图表的大小。另外需要注意的是:在容器节点被销毁时,可以调用echartsInstance.dispose以销毁e......
  • ZLMediaKit实现按需拉流时rtsp流地址不对addStreamProxy返回0,接口流id参数踩坑记录
    场景开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130136245基于上面实现拉取视频流预览时,发现当调用api传参时如果更换了rtsp视频流地址,但是没有更改......
  • 关于浏览器的Selection对象,以及window.getSelection()的API用法
    Selection 对象就是用户选择的文本范围或插入符号的位置。它代表页面中的文本选区,可能横跨多个元素。文本选区由用户拖拽鼠标经过文字而产生。具有以下属性和方法。 1、anchorNode只读属性,返回选区开始位置所属的节点。用户可能从左往右框选,也可能从右往左框选。但是锚点......
  • SelfDefinedDataset显示没有属性get_datasets
    get_datasets是一个PyTorchLightning框架中的方法,用于返回数据加载器中包含的训练、验证和测试数据集。如果你的自定义数据集类没有该方法,则会出现AttributeError:'YourDataset'objecthasnoattribute'get_datasets'错误。要解决这个问题,你需要在自定义数据集类中实现g......
  • Bootstrap模板-使用现成的免费完善模板制作网页.
    Bootstrap有一系列现成的免费而优秀的模板,我们可以用于制作前端页面稍加改进就是一个美观的页面  模板代码(源自purpleTemplate):<!DOCTYPEhtml><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=dev......
  • UVA How Many Points of Intersection?
      HowManyPointsofIntersection? a dotsonthetoprowand b dotsonthebottomrow.Wedrawlinesegmentsconnectingeverydotonthetoprowwitheverydotonthebottomrow.Thedotsarearrangedinsuchawaythatthenumberofinternalintersectio......
  • ts 1
    1、TypeScript是静态类型,是弱类型全局安装ts:  npminstall-gtypescript编译一个TypeScript文件:tschello.tsTypeScript最大的优势之一便是增强了编辑器和IDE的功能,包括代码补全、接口提示、跳转到定义、重构TypeScript中,使用 : 指定变量的类型。TypeScript只会......
  • ONVIF网络摄像头(IPC)客户端开发—RTSP RTCP RTP加载H264视频流
    前言:RTSP,RTCP,RTP一般是一起使用,在FFmpeg和live555这些库中,它们为了更好的适用性,所以实现起来非常复杂,直接查看FFmpeg和Live555源代码来熟悉这些协议非常吃力,这里将它们独立出来实现,以便更好的理解协议。本文主要介绍RTSP,RTCP,RTP加载H264数据流。说明:(1)大华IPC摄像头作为服......
  • ONVIF网络摄像头(IPC)客户端开发—最简RTSP客户端实现
    前言:网上对于RTSP协议客户端的表述和实现非常不清晰,在实际使用中,FFMPEG和live555这些软件已经实现了RTSP客户端和服务端的所有功能,但是它们并没有将RTSP协议独立出来,通过看live555或是FFMPEG这些第三方库的源码来学习rtsp协议还是非常吃力。这里根据协议自己现实一个RTSP客户端程......
  • ONVIF网络摄像头(IPC)客户端开发—RTSP RTCP RTP加载AAC音频流
    前言:RTSP,RTCP,RTP一般是一起使用,在FFmpeg和live555这些库中,它们为了更好的适用性,所以实现起来非常复杂,直接查看FFmpeg和Live555源代码来熟悉这些协议非常吃力,这里将它们独立出来实现,以便更好的理解协议。本文主要介绍RTSP,RTCP,RTP加载AAC音频流。说明:(1)大华IPC摄像头作为服......