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

TS初相识

目录前言关于TS使用TS之前的环境搭配TS的数据类型numberstringnullundefined根类型数组类型元组函数类型前言js的缺点错误出现的时机靠后数据类型并不是连续的内存空间js没有类型检测机制弱类型关于TS融合了后端面向对象思想的超级版的javaScript语言。typescript是微软2012年10月开发的一个开源的编程语言typescript是javascript的一个超集扩展了JS为它添加了类型支持来源于JS归于JSTS通过TS编译器或Babel转译为JS代码TS可以编译出普通、干净、完整的JS代码可运行任何浏览器任何操作系统任何可运行JS的地方使用TS之前的环境搭配首先需要安装node.js安装好Node.js后打开cmd窗口输入以下命令npm install -g typescript //安装typescript下载 npm i -g ts-node 可以直接运行ts文件不需要转成jsnpm i -g ts-node //安装ts的node 辅助工具直接运行ts文件ts-node 02.one.ts //安装好之后就可以直接运行ts文件了npx tsx...建立tsconfig.json文件src:用来写ts文件dist 用来放编译后的js文件html文件用来运行js文件初始化tsconfig.json//来到对应的文件夹终端下tsc --init修改tsconfig.jsonrootDir:./src 用来配置编译src文件夹下的ts文件outeDir:./dist 用来放ts编译后的js文件target: ES2016,编译ts文件npx tsc或者tsc -w //监听所有的ts 文件的变化,动态变化jsTS的数据类型基本类型string、number、boolean、symbol、bigint、null、undefined引用类型array、 Tuple(元组)、 object(包含Object和{})、function特殊类型any、unknow、void、nerver、Enum(枚举)其他类型联合类型、交叉类型、字面量类型等等numberTypeScript里的所有数字都是浮点数。双精度 64 位浮点值。它可以用来表示整数和分数。let binaryLiteral: number 0b1010; // 二进制 let octalLiteral: number 0o12; // 八进制 let decLiteral: number 10; // 十进制 let hexLiteral: number 0xa; // 十六进制 console.log(binaryLiteral,octalLiteral,decLiteral,hexLiteral) //10,10,10,10string一个字符系列使用单引号或双引号来表示字符串类型。反引号来定义多行文本和内嵌表达式。let name: string Runoob; let str: string 我的存款是 let years: number 5; let words: string 您好今年是 ${ name } 发布 ${ years 1} 周年; console.log(words) //您好今年是 Runoob 发布5周年 //字符串和数字之间能够一起拼接 console.log(stryears) //我的存款是5nullundefined// undefined let data1:anyundefined let data2:unknownundefined let data3:undefinedundefined // null let data1:nullnull let data2:anynull let data3:unknownnull根类型Object{} 除了undefined/null其他都可以赋值// 根类型 Object{} 除了undefined/null其他都可以赋值 let obj1: Object 123 let obj2: Object 123 let obj3: Object { name: tom } let obj4: Object [1, 2, 3] // let obj5: object undefined//报错 // let obj6: object null//报错 // 两个容易犯错误的小栗子 // 例1 let obj{username:jack,age:18} console.log(obj.username); //jack console.log(obj[username]);//jack // let usernameusername // console.log(obj[username]); //报错因为username变量值可能会改变 // usernamelisi//例如 const usernameusername //这就对了因为const定义的变量不能修改 console.log(obj[username]); // 例2 let obj:Object{username:jack,age:18} console.log(obj.username);//报错因为Object上没有username属性数组类型类型名称 []Array数据类型let arr1: number[] [1, 2, 3] let arr2: Arraynumber [1, 2, 3] let arr2: Arraynumber [1, 2, 3] // error //要想是数字类型或字符串类型需要使用 let arr3: Arraynumber | string [1, 2, 3] //ok元组满足以下3点的数组就是元组(1)在定义时每个元素的类型都确定(2)元素值的数据类型必须是当前元素定义的类型(3)元素值的个数必须和定义时个数相同语法[类型类型类型]//元组类型在定义数组的时候类型的数据的个数一开始就已经限定了 let arr:[string,number,boolean] [你好,100.254,true] //注意元组类型在使用的时候 //数据的类型的位置和数据的个数应该和定义元组的时候的数据类型及位置应该一致 console.log(arr[0].split()) //[你,好] console.log(arr.toFixed(2)) //100.25函数类型有两种方式一种为function 另一种为箭头函数在书写的时候也可以写入返回值的类型如果写入则必须要有对应类型的返回值但通常情况下是省略因为TS的类型推断功能够正确推断出返回值类型{ // 限制形参的类型 // function getSum(a: number, b: number) { // return a b // } // // getSum(a, b)// 报错 // getSum(1, 2) // 限制返回值的类型 // function getSum(a: number, b: number): number { // return a b // } // // getSum(a, b)// 报错 // getSum(1, 2) // 箭头函数 // const getSum(a:number,b:number):number{ // return ab // } // Function类型 // const getSum: Function function () { } // 定义变量getSum类型是函数函数的返回值是number // const a: number 1 // const getSum: (a: number, b: number) number (a, b) { return 1 } // 将类型提出 type TGetSum (a: number, b: number) number const getSum: TGetSum (a, b) { return a b } getSum(1, 2) }

相关文章:

TS初相识

目录 前言: 关于TS 使用TS之前的环境搭配 TS的数据类型 number string null&undefined 根类型 数组类型 元组 函数类型 前言: js的缺点 错误出现的时机靠后 数据类型并不是连续的内存空间 js没有类型检测机制(弱类型&#…...

hybrid实验

拓扑分接口SW1SW2SW3配置IP地址池配置DHCP自动获取IPPC1PC2PC3PC4PC5PC6END...

别再死记硬背!用Multisim仿真带你直观理解TTL反相器的工作原理

用Multisim仿真拆解TTL反相器:从波形透视晶体管开关艺术 当你第一次在教科书上看到TTL反相器的原理图时,那些密密麻麻的三极管、电阻和二极管是否让你望而生畏?传统学习方式要求我们死记硬背各个工作区间的电压阈值和电流路径,但这…...

为什么SITS2026要求“AI能力必须嵌入主干流程”?——基于17家头部企业POC数据的因果链分析(含RPA+LLM耦合失效预警模型)

第一章:企业AI原生转型:SITS2026实战攻略 2026奇点智能技术大会(https://ml-summit.org) 企业AI原生转型已从战略构想进入规模化落地阶段。SITS2026(Smart Intelligent Transformation Summit 2026)提出“三阶跃迁”实践框架&…...

鹏哥c语言复习第十一讲----指针1基础概念

本文覆盖:内存与地址、指针变量、指针类型意义、指针运算,全是面试 考试必考点一、内存和地址(指针本质)内存被划分为一个个字节单元,每个单元有唯一编号,这个编号就是地址 指针。32 位机器:地…...

基本数据类型(小数/浮点数)

在Java中,表示小数的数据类型有两个:float和double。其中float占用4个字节,是单精度浮点数;double占用8个字节,是双精度浮点数。从字节数可以看出,double的存储范围更大。所谓精度,指的是小数点…...

AI代码审查革命性突破(2026奇点大会闭门报告首次公开):基于LLM+符号推理双轨架构的零误报审查框架

第一章:AI代码审查革命性突破(2026奇点大会闭门报告首次公开):基于LLM符号推理双轨架构的零误报审查框架 2026奇点智能技术大会(https://ml-summit.org) 传统静态分析工具长期受限于路径爆炸与语义盲区,误报率普遍高…...

【AI原生软件质量保障体系白皮书】:20年QE专家首度公开7大核心支柱与3层验证飞轮模型

第一章:AI原生软件质量保障体系的范式跃迁 2026奇点智能技术大会(https://ml-summit.org) 传统软件质量保障以确定性逻辑、静态代码审查和人工设计测试用例为核心,而AI原生软件——其核心组件包含大语言模型推理链、动态提示工程、向量检索模块与实时反…...

如何用BilibiliDown轻松下载B站视频:免费跨平台视频下载器终极指南

如何用BilibiliDown轻松下载B站视频:免费跨平台视频下载器终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/…...

STM32+FreeRTOS轻量级确定性以太网接口实现

1. 项目概述EthernetNetif_RSF是一个面向嵌入式实时系统的轻量级以太网网络接口(Netif)实现,专为基于 STM32 系列微控制器(特别是带 ETH 外设的型号,如 STM32F4/F7/H7)并运行 FreeRTOS 操作系统的平台设计。…...

IP地址什么?工业场景网络注意事项有哪些?信

OCP原则 ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则(DIP) 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程, 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...

AI原生研发必须跨过的5道合规关卡:从模型训练数据溯源到部署阶段审计日志全链路合规验证指南

第一章:AI原生软件研发合规性要求解读 2026奇点智能技术大会(https://ml-summit.org) AI原生软件并非传统软件的简单增强,其核心特征在于模型即逻辑、数据即资产、推理即服务。这种范式转变直接触发了监管视角的根本性迁移——合规性不再仅聚焦于代码安…...

GD32F103待机模式实测:功耗从30mA降到3mA,手把手教你用按键唤醒(附源码)

GD32F103待机模式实战:从30mA到3mA的功耗优化全解析 引言 在嵌入式系统设计中,功耗优化一直是开发者面临的永恒课题。想象一下,你设计的智能门锁因为功耗问题需要频繁更换电池,或者野外监测设备因为电量耗尽而失去关键数据采集机会…...

动态规划之【树形DP】第2课:树形DP应用案例实践1

动态规划之【树形DP】第2课:树形DP应用案例实践1 二叉苹果树 题目描述 有一棵苹果树,如果树枝有分叉,一定是分二叉(就是说没有只有一个儿子的结点) 这棵树共有 NNN 个结点(叶子点或者树枝分叉点&#xf…...

2026-04-11 全国各地响应最快的 BT Tracker 服务器(电信版)

数据来源:https://bt.me88.top 序号Tracker 服务器地域网络响应(毫秒)1http://211.75.210.221:6969/announce广东广州电信322http://60.249.37.20:80/announce广东东莞电信333http://211.75.205.189:6969/announce广东深圳电信364udp://132.226.6.145:6969/announc…...

2026年04月10日最热门的开源项目(Github)

根据本期榜单的数据分析,我们可以从几个角度进行探讨,包括项目的语言、介绍、当前Stars及热度等。 1. 项目语言分布 此榜单中的项目主要集中在Python和JavaScript等常用语言上,其中Python项目数量较多。可以观察到Python的丰富生态和广泛应…...

python类库(一)模板

一、PromptTemplate方法from_templatePromptTemplate 的 from_template 方法就是将一个原始的模板字符串转化为一个更丰富、更方便操作的 PromptTemplate 对象,这个对象就是 LangChain 中的提示模板。示例# 导入LangChain中的提示模板 from langchain_core.prompts …...

LangChain进阶(二)RAG与真实应用落地

RAG与真实应用落地...

LangChain进阶(三)CAMELBabyAGI

Agents智能体如何思考与行动...

LangChain模块(六)Agent智能体

Agent智能体...

Mbed平台任意引脚软件PWM库实现与应用

1. 项目概述lib_PwmOutAllPin是一个面向 ARM Mbed OS 平台的轻量级扩展库,其核心目标是突破 Mbed 原生PwmOut类的硬件引脚限制,实现“任意数字引脚输出 PWM 波形”的能力。在标准 Mbed SDK 中,PwmOut构造函数仅接受预定义的、具备硬件 PWM 功…...

AI生成代码的版权争议:谁拥有所有权?——软件测试从业者的专业视角

技术变革下的新命题随着ChatGPT、文心一言等生成式AI工具在软件开发领域的深度应用,AI自动生成的测试脚本、接口代码甚至自动化测试框架正迅速普及。2025年全球开发者调研显示,67%的软件测试团队已常态化使用AI辅助编码。当一行行由机器生成的代码融入测…...

从零部署到实战:用YOLOv11+PyQt5打造你的工地安全帽检测桌面应用(附完整代码)

从零部署到实战:用YOLOv11PyQt5打造你的工地安全帽检测桌面应用 在建筑工地这样的高危环境中,安全帽佩戴检测是保障工人生命安全的重要环节。传统的人工巡检方式不仅效率低下,而且难以实现全天候监控。本文将带你从零开始,使用YOL…...

**发散创新:用 Rust实现高性能光线追踪渲染器的核心逻辑与优化技巧**在现代图形学领域,**光线追踪

发散创新:用 Rust 实现高性能光线追踪渲染器的核心逻辑与优化技巧 在现代图形学领域,光线追踪(Ray Tracing) 已成为高质量实时渲染的基石。随着硬件支持(如 NVIDIA RTX)普及,越来越多开发者开始…...

STM32 FSMC DMA驱动LVGL刷新优化:从原理到3.5寸屏实战避坑

1. FSMC与DMA加速LVGL刷新的核心原理 第一次在STM32上跑LVGL时,最让我头疼的就是刷新卡顿问题。后来发现,传统的像素点逐行写入方式就像用吸管转移游泳池的水——效率实在太低。这里面的关键突破在于理解FSMC(Flexible Static Memory Control…...

开源许可证变更风波:商业与自由的博弈

在当今软件开发的生态系统中,开源软件已成为测试工作的核心支柱。从自动化框架到持续集成工具,测试从业者依赖开源组件提升效率与覆盖度。然而,近期开源许可证的频繁变更——如Redis从BSD转向RSALv2/SSPLv1、Bun 2.0从MIT切换到AGPLv3——正掀…...

Claude频发Bug,AI安全引担忧

近日,Claude被爆出存在严重Bug,分不清用户与系统发言,甚至将恶意指令当合法请求。此问题在Hacker News引发热议,也暴露出大模型的安全隐患。Claude现身份识别障碍Claude 3.5和Claude 4系列在处理复杂或恶意上下文时,出…...

openclaw平替之nanobot源码解析(六):子智能体(Subagents)甭

插件化架构 v3 版本最大的变化是引入了模块化插件系统。此前版本中集成在核心包里的原生功能,现在被拆分成独立的插件。 每个插件都是一个独立的 Composer 包,包含 Swift 和 Kotlin 代码、权限清单以及原生依赖。开发者只需安装实际用到的插件&#xff0…...

为什么87%的AI项目卡在MVP之后?:2026技术雷达图暴露5个被低估的工程化盲区

第一章:AI原生软件研发技术雷达图2026版全景概览 2026奇点智能技术大会(https://ml-summit.org) 2026版AI原生软件研发技术雷达图由ML Summit联合CNCF AI Working Group、IEEE Software AI Engineering Task Force共同发布,覆盖7大核心维度、42项关键技…...

MediaPipe人体姿态识别避坑指南:从环境配置到模型调优

MediaPipe人体姿态识别避坑指南:从环境配置到模型调优 人体姿态识别技术正在重塑人机交互的边界——从虚拟健身教练的实时动作纠正,到影视特效中的精准动作捕捉,这项技术正在多个领域展现惊人潜力。作为Google推出的跨平台解决方案&#xff0…...