Ts笔记第一天

news2024/11/26 5:38:56

文章目录

  • 安装 ts运行环境 node
  • TS类型
    • 数字 、字符串 和布尔类型
    • 字面量
    • any 和unknown
    • 类型断言
    • void和never
    • object
    • Array
    • tuple 元组
    • enum 枚举

安装 ts运行环境 node

node-v看版本号
2. 安装ts -g全局安装

npm i -g typescript  // 这里全局安装  -s安装无法使用tsc 
  1. 创建一个01.ts文件
  2. 命令编译这个.ts文件
tsc 01.ts
  1. 这时候文件多了一个01.js文件

TS类型

| 类型 | 例子 |

类型例子描述
number1, -33, 2.5任意数字
string‘hi’, “hi”, hi任意字符串
booleantrue、false布尔值true或false
字面量其本身限制变量的值就是该字面量的值
any*任意类型
unknown*类型安全的any
void空值(undefined)没有值(或undefined)
never没有值不能是任何值
object{name:‘孙悟空’}任意的JS对象
array[1,2,3]任意JS数组
tuple[4,5]元素,TS新增类型,固定长度数组
enumenum{A, B}枚举,TS中新增类型

数字 、字符串 和布尔类型

let decimal: number = 6;   //6
let isDone: boolean = false;


let fullName: string = `Bob Bobbington`;
let sentence: string = `Hello, my name is ${fullName}`  
//'Hello, my name is Bob Bobbington'

tsc 转js后
var fullName = "Bob Bobbington";
var sentence = "Hello, my name is ".concat(fullName);

字面量

可以使用字面量去指定变量的类型,也可以通过字面量可以确定变量的取值范围

let a:10 
a = 11   //报错  
a = 10  //正确

let color: 'red' | 'blue' | 'black'; //color 取值范围内正确,其它的都报错
let num: 1 | 2 | 3 | 4 | 5;

any 和unknown

let d: any = 4;
d = 'hello';
d = true;
let notSure: unknown = 4;
     notSure = 'hello';

any 赋值给另外一个变量不报错,unknown 赋值给另外一个变量会报错
unknown 是一个类型安全的any,

let s:string="df"
let d:any ="dse"
let f:unknown="sdfwe"
s = d  //不报错
s = f  //报错

类型断言

可以用类型断言来赋值 不报错

s=f as string  
//or
s = <string>f

第一种用法

let someValue: unknown = "this is a string";
let strLength: number = (someValue as string).length;

第二种用法

let someValue: unknown = "this is a string";
let strLength: number = (<string>someValue).length;

void和never

用在函数中,void 表示没有返回值的函数,如果有return 10 会报错

let unusable: void = undefined;

function fn() :void {
  return 10  ; //报错
  return  //不报错
}

never表示永远不会有结果,一般用来抛出异常

function error(message: string): never {
    throw new Error(message);
}

object

? 表示属性是可选的

let bb: {name:string,age?:number}  //在属性后面加上 ? 表示属性是可选的
bb={name:'ded'}

[propname:string]:any 表示任意类型的属性,属性名是字符串,属性值任意类型
propname可以随便写,任意名称替换都可以

let  cc:{name:string,[propname:string]:any}
cc = {name:'dsd',age:18,gender:'男'}

设置函数结构的类型声明

语法:(形参:类型,形参:类型...)=> 返回值
let dd:(a:number,b:number)=>number
dd =function(ni,n2):number{
    return 10
}

Array

两种声明方式

let arr1:string[]
arr1=['a','b','c']

let arr2:Array<number>
arr2=[1,2,3]

tuple 元组

元组就是固定长度的数组

let x: [string, number];
x = ["hello", 10]; 

enum 枚举

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

enum Color {
  Red = 1,
  Green,
  Blue,
}
let c: Color = Color.Green;

enum Color {
  Red = 1,
  Green = 2,
  Blue = 4,
}
let c: Color = Color.Green;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/333010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第五十章 动态规划——数位DP模型

第五十章 动态规划——数位DP模型一、什么是数位DP数位DP的识别数位DP的思路二、例题1、AcWing 1083. Windy数&#xff08;数位DP&#xff09;2、AcWing 1082. 数字游戏&#xff08;数位DP&#xff09;3、AcWing 1081. 度的数量&#xff08;数位DP&#xff09;一、什么是数位DP…

供应PEG试剂AC-PEG-COOH,Acrylate-PEG-Acid,丙烯酸酯-PEG-羧基

英文名称&#xff1a;AC-PEG-COOH&#xff0c;Acrylate-PEG-Acid 中文名称&#xff1a;丙烯酸酯-聚乙二醇-羧基 丙烯酸酯-PEG-COOH是一种含有丙烯酸酯和羧酸的线性杂双功能PEG试剂。它是一种有用的带有PEG间隔基的交联剂。丙烯酸酯可与紫外光或自由基引发剂聚合。丙烯酸酯-PE…

从FPGA说起的深度学习(二)

这是新的系列教程&#xff0c;在本教程中&#xff0c;我们将介绍使用 FPGA 实现深度学习的技术&#xff0c;深度学习是近年来人工智能领域的热门话题。在本教程中&#xff0c;旨在加深对深度学习和 FPGA 的理解。用 C/C 编写深度学习推理代码高级综合 (HLS) 将 C/C 代码转换为硬…

Leetcode.1797 设计一个验证系统

题目链接 Leetcode.1797 设计一个验证系统 Rating : 1534 题目描述 你需要设计一个包含验证码的验证系统。每一次验证中&#xff0c;用户会收到一个新的验证码&#xff0c;这个验证码在 currentTime时刻之后 timeToLive秒过期。如果验证码被更新了&#xff0c;那么它会在 curr…

完成各种项目生态环评工作丨全流程基于最新导则下的生态环境影响评价技术方法及图件制作与案例

目录 专题一 生态环境影响评价框架及流程 专题二 基于遥感解译的土地利用现状图的编制 专题三 生物多样性测定及R语言分析 专题四 植被类型及植被覆盖度图的编制 专题五 生物量与净初级生产力测定&#xff1a;实测及模型 专题六 生态系统类型及服务价值评估 专题七 物种…

【漫漫转码路】Day 45 机器学习 day04

梯度下降 梯度下降法是常用于求解无约束情况下凸函数的极小值&#xff0c;是一种迭代类型的算法&#xff0c;因为凸函数只有一个极值点&#xff0c;故求解出来的极小值点就是函数的最小值点 公式 第一个θ&#xff0c;是更新之后的θ&#xff0c;第二个θ是更新之前的θ&…

数据挖掘,计算机网络、操作系统刷题笔记47

数据挖掘&#xff0c;计算机网络、操作系统刷题笔记47 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;orac…

【LeetCode】1797. 设计一个验证系统

1797. 设计一个验证系统 题目描述 你需要设计一个包含验证码的验证系统。每一次验证中&#xff0c;用户会收到一个新的验证码&#xff0c;这个验证码在 currentTime 时刻之后 timeToLive 秒过期。如果验证码被更新了&#xff0c;那么它会在 currentTime &#xff08;可能与之…

理解HDFS工作流程与机制,看这篇文章就够了

HDFS(The Hadoop Distributed File System) 是最初由Yahoo提出的分布式文件系统&#xff0c;它主要用来&#xff1a; 1&#xff09;存储大数据 2&#xff09;为应用提供大数据高速读取的能力 重点是掌握HDFS的文件读写流程&#xff0c;体会这种机制对整个分布式系统性能提升…

训练营day16

104.二叉树的最大深度 559.n叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数104.二叉树的最大深度 力扣题目链接 给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示…

javaEE 初阶 — UDP 协议

文章目录UDP 协议1. UDP协议报文结构1.1 一个 UDP 数据报能传输的最大数据1.2 校验和1.3 生成校验和的算法UDP 协议 1. UDP协议报文结构 16位UDP长度&#xff0c;表示整个数据报&#xff08;UDP首部UDP数据&#xff09;的最大长度&#xff0c;如果校验和出错&#xff0c;就会直…

计算机网络之http02| HTTPS HTTP1.1的优化

post与get请求的区别 get 是获取资源&#xff0c;Post是向指定URI提交资源&#xff0c;相关信息放在body里 2.http有哪些优点 &#xff08;1&#xff09;简单 报文只有报文首部和报文主体&#xff0c;易于理解 &#xff08;2&#xff09;灵活易拓展 URI相应码、首部字段都没有…

ORB-SLAM2编译、安装等问题汇总大全(Ubuntu20.04、eigen3、pangolin0.5、opencv3.4.10)

ORB-SLAM2编译、安装等问题汇总大全&#xff08;Ubuntu20.04、eigen3、pangolin0.5、opencv3.4.10&#xff09; 1&#xff1a;环境说明: 使用的Linux发行版本为Ubuntu 20.04 SLAM2下载地址为&#xff1a;git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 2&a…

Element UI框架学习篇(二)

Element UI框架学习篇(二) 1 整体布局 1.1 前提说明 el-container标签里面的标签默认是从左往右排列,若想要从上往下排列,只需要写el-header或者el-footer就行了 <el-container>&#xff1a;外层容器 <el-header>&#xff1a;顶栏容器。 <el-aside>&#…

Android框架源码分析——从设计模式角度看 Retrofit 核心源码

Android框架源码分析——从设计模式角度看 Retrofit 核心源码 Retrofit中用到了许多常见的设计模式&#xff1a;代理模式、外观模式、构建者模式等。我们将从这三种设计模式入手&#xff0c;分析 Retrofit2 的核心源码。 1. 宏观 Retrofit 是一个外观模式的设计 外观模式&am…

Intel处理器分页机制

分页模式 Intel 64位处理器支持3种分页模式&#xff1a; 32-bit分页PAE分页IA-32e分页 32-bit分页 32-bit分页模式支持两种页面大小&#xff1a;4KB以及4MB。 4KB页面的线性地址转换 4MB页面的线性地址转换 PAE分页模式 PAE分页模式支持两种页面大小&#xff1a;4KB以及…

Java 验证二叉搜索树

验证二叉搜索树中等给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下&#xff1a;节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1&…

ChatGPT注册流程攻略,含验证码接收(图文步骤)

本文给大家分享一下我成功注册的流程&#xff01; 其实方法都类似&#xff0c;若无海外手机号码可用接验证码的平台&#xff08;ps&#xff1a;我之前使用的是SMS-Activate&#xff09; 必要准备 能够科学上网&#xff08;并且全局模式&#xff09; 能确认登录的电子邮箱&…

ffmpeg硬解码与软解码的压测对比

文章目录ffmpeg硬解码与软解码的压测一、基本知识二、压测实验1. 实验条件及工具说明2. 压测脚本3. 实验数据结果ffmpeg硬解码与软解码的压测 一、基本知识 本文基于intel集显进行压测 软解码&#xff1a;cpu对视频进行解码硬解码&#xff1a;显卡或者多媒体处理芯片对视频进…

Python编程自动化办公案例(1)

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.使用库讲解 1.xlrd 2.xlwt 二.主要案例 1.批量合并 模板如下&#xf…