TypeScript是强类型,静态类型的JavaScript

MTK pwm beeper配置记录 如果正常,系统启动后会在/dev/input下生成 一个event节点,使用方法参考标准linux使用。dts相关修改如下,全都在里面,注意一下位置。对应的配置文件中增加如下定义。 阅读详情

1. 编程语言的分类

As we all know, JavaScript 是弱类型,动态类型的编程语言。
在这里插入图片描述
首先我们来解释一下这几个名词:

  • 动态类型语言:在 运行期间(Runtime) 才去做数据类型检查的语言。
  • 静态类型语言:在 编译其间(Compile) 就进行数据类型检查的,C/C++/Java都是静态语言的典型代表。
  • 强类型语言:强制类型定义,若要修改其类型,必须进行显式类型转换。
  • 弱类型语言:数据类型可以被忽略的语言。(一个变量可以赋予不同类型值)

对于静态类型与动态类型的区分,有一句名言:

Static typing when possible, dynamic typing when needed


2. 举例说明JavaScript的特点

上面提到JavaScript 是弱类型,动态类型的编程语言。这里我们做一下演示,来吐槽一下。

// 在这里,定义一个简单的求和函数
function sum(x,y){
	return x + y
}

在这里插入图片描述
这些就是弱类型的问题,最可怕的是JavaScript是动态类型语言,还必须在运行期间才能发现这些错误。(船到江心才补漏——晚了)

此时资深人士说了,我们JavaScript也可以避免上述问题:

// 这样做确实可以(只要你不怕麻烦)
function sum(x,y){
	 if(typeof(x) ==="number" && typeof(y)==="number"){
         return x + y
     }else{
         throw "invalid data"
     }
}

这时有强类型语言经验的同学发言了—— 给形参加上数据类
在这里插入图片描述


// 第一种方案:Uncaught SyntaxError: Unexpected token ':'
function sum(x:number,y:number){
	return x + y;
}
// 第二种方案:ncaught SyntaxError: Unexpected identifier 'x'
function sum(number x, number y){
	return x + y;
}


难道就没有一种方案,来给JavaScript开发者一丝安全感吗?

3. TypeScript的强大

在这里插入图片描述

TypeScript 与 JavaScript 有着不同寻常的关系。TypeScript 提供了 JavaScript 的所有功能,并在这些功能之上添加了一层: TypeScript 的类型系统。

利用TypeScript的类型系统,我们可以这样写代码:

类型推断:通过感知 JavaScript 的工作原理,TypeScript 可以构建一个接受 JavaScript 代码但具有类型的类型系统。这个类型系统使得我们不需要添加额外的字符来显式地指定类型。


// 创建变量并将其赋值给特定值时, TypeScript 将使用该值作为其类型。
const name:string = "BertKing"
// 类型推断
const name = "BertKing"

function sum(x:number,y:number):numbre{
	return x + y;
}

// 同理,TS具有类型推断能力,这里函数的返回值类型也可以省略
function sum(x:number,y:number){
	return x + y;
}

如果我们调用sum(5,true)就会在编译时报错:
在终端利用TypeScript的编译器:
在这里插入图片描述
使用VSCode:
在这里插入图片描述
总之,TypeScript会在代码执行前就报出明显的错误,其带来的严谨性能够有效的避免许多错误。这也就是所谓的TypeScript的静态类型检查

在这里插入图片描述
趁热打铁,我们先来认识一下 TypeScript Compiler(TSC)

在 SAP S/4HANA 分析模型中添加 Measures,Calculated、Restricted、Currency Conversion 与 Unit Conversion 的建模思路 摘要: SAP S/4HANA分析查询建模中,度量(measure)的加工层级是关键难点,涉及聚合时机、币种/单位语义、过滤上下文等复杂因素。度量不仅是数字字段,还需处理计算口径(Calculated Measures)、上下文绑定(Restricted Measures)和单位转换等问题。Calculated Measures适合派生指标(如毛利率),需注意聚合前后计算差异;Restricted Measures通过固化过滤条件(如区分实际/计划金额)确保业务语义一致性。建模时应将业务逻辑下沉到分析模型层 阅读详情

相关推荐

Mid-360激光雷达与IMU标定实战:从环境配置到参数优化

本文详细介绍了Mid-360激光雷达与IMU标定的完整流程,涵盖环境配置、驱动适配、参数优化及实战操作。重点解析了标定参数设置技巧与常见问题解决方案,帮助开发者提升机器人感知系统的定位与建图精度,确保LiDAR-IMU数据融合的最佳效果。

a1b2c3d的博客 914

什么是TypeScript? 强类型JavaScript

什么是TypeScript? TypeScript定义 TypeScript是流行的JavaScript编程语言的变体,它添加了一些对于企业开发很重要的关键功能。 特别是,TypeScript是强类型的 -程序员可以将变量和其他数据结构声明为特定类型,例如字符串或布尔值,并且TypeScript将检查其值的有效性。 这在松散类型的 JavaScript中是不可能的。 TypeScrip...

cxu0262的博客 1734

LVGL项目内存告急?试试把中文字库放到SD卡里(基于LvglFontTool V0.5)

本文详细介绍了在LVGL嵌入式项目中如何通过将中文字库存储到SD卡来优化内存使用。针对Flash资源有限的MCU,如STM32F103,提供了基于LvglFontTool V0.5的外部字库生成与动态加载方案,适用于多字号、多语言及OTA场景,显著减少固件体积并提升显示灵活性。

weixin_33726318的博客 456

关于TypeScript是弱类型还是强类型?

关于TypeScript是弱类型还是强类型?

qq_53818683的博客 770

SEMI E40标准的加工任务状态模型(Process Job State Model)解析

半导体制造设备的自动化控制离不开对加工任务(Process Job)的精细管理。SEMI E40标准定义了加工任务的全生命周期状态模型。分层建模,支持嵌套与并发子状态,确保复杂流程的灵活控制。SEMI E40通过。

bengg123的博客 1772

HybridCLR热更新全流程实操:用Addressables实现资源+代码双热更(Unity 2021版)

本文详细介绍了在Unity 2021 LTS版本中,如何结合HybridCLR代码热更新与Addressables资源管理系统,实现资源与代码的双热更解决方案。通过环境配置、技术架构设计、实战案例和性能优化,帮助开发者解决中大型项目中的依赖管理和版本协同问题,提升游戏迭代效率。

cc789的博客 845

TypeScript简介及语言特性

简介 TypeScript对我们来说可能有点儿陌生,我们可以先简单的介绍下JS,它是一种具有函数优先的轻量级,解释型或即时编译型的编程语言,是数据类型可以被忽略的语言,一个变量可以赋不同类型的值,俗称弱类型语言。TypeScript是一种强类型语言。 // JavaScript的demo案例 var a = "abc"; a = 123; console.log(`a: ${a}`); // a: 123 TypeScript的语言特性 与现存的JavaScript代码有非常高的兼容性。TypeScri

friend_ship的博客 1277

STM32H5 USB虚拟串口:用Classic驱动移植CDC实践

USB虚拟串口(CDC)是嵌入式系统最常用的主机通信方式之一,本质是借助USB协议模拟串口收发,无需额外驱动即可在PC上生成COM口。其实现依赖USB设备协议栈完成枚举、控制传输与批量传输。传统USBD Classic库不依赖RTOS,代码轻量、调用链短,非常适合裸机或轻量状态机架构;而USBX功能强大但需要ThreadX内核,资源开销较大。在电机控制器、传感器采集等场景中,日志输出与参数配置仅需简单的双向数据通道,Classic驱动往往更务实。本文基于STM32H5平台,详细梳理了使用Classic驱动移

weixin_29178069的博客 334

TypeScript 一种强类型的前端语言

一. 认识TypeScript(简称TS) TypeScript语言是Javascript语言的超集, 最终会编译成Javascirpt。 TypeScript = Javascript + 类型系统 + ES6+。 相比Flow, TS作为一门完整的编程语言,功能更强大、生态更健全。 Angular Vue.js3 都开始使用TypeScript。 TS非常适合用于大型、长期项目的开发,对于短期小项目而言,增加的开发成本得不偿失。 二. TypeScript的使用 1.TypeScript.

xuanwuziyou的专栏 2081

保边滤波之Mean shift filter

保边滤波之Mean shift filter 目录 保边滤波之Mean shift filter 一、算法原理 二、练手实现的算法代码如下: 三、实现结果 一、算法原理 在OpenCV中,meanshift filter函数为 p...

大熊 1561

被滑块虐了3个月!我终于写出了零失败的Python滑块验证码通杀方案(AI识别+真人轨迹)

缺口识别的偏移量一定要算对:滑块的初始位置一般在图片左侧,宽度约50像素,一定要减去这个初始宽度,不然会滑多了;绝对不要用Selenium的drag_and_drop方法:这个方法是匀速滑动,直接被风控秒识别,必须自己分步控制鼠标移动;滑动前后必须加停顿:真人按住滑块会停0.1-0.3秒再开始滑,松开之前也会停0.05-0.1秒,不要按下去立刻就滑,滑完立刻就松;不要每次都滑的完美无缺:可以设置10%的概率故意滑错一次,然后刷新验证码重新滑,更像真人;无头模式通过率极低。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 500

(3)让 TypeScript 真正成为“强类型”

有了这些信息,就可以编写更复杂的 ESLint 规则,从本质上扩展 TypeScript 的类型检查功能。类型是类型系统中的一个危险漏洞,使用它会禁用所有类型检查功能以及依赖于类型检查的所有工具。最有可能的是,这个插件已经安装在您的项目中。您能够在语法级别理解 TypeScript,从而允许您编写适用于代码中手动编写的类型的简单 eslint 规则。对于我们的团队来说,使用类型感知静态分析规则所提供的额外安全性是值得权衡的。但是,根据我的经验,当您尝试使用类型错误的第三方依赖项时,它们确实很有帮助。

qqrrjj2011的博客 2230

《C++等级认证CCF-GESP真题解析》专栏总目录

❤️ 专栏名称:《C++等级认证CCF-GESP真题解析》🌸 专栏介绍:中国计算机学会GESP《CCF编程能力等级认证》C++编程(1~8级)历届真题解析。🚀 订阅专栏:订阅后可阅读专栏内所有真题解析,真题持续更新中,欢迎订阅!

人生就是一个不断学习的过程 6287

简单探讨JavaScript 与 TypeScript之间的联系

这篇文章主要介绍了 JavaScript 与 TypeScript之间的联系,JavaScript,也称为 JS,是一种符合 ECMAScript 规范的编程语言。这是一个高级别的、通常是即时编译的、多范式的。TypeScript 是一种强类型、面向对象的编译语言,更多消息内容,需要的朋友可以参考一下下面文章内容 1、什么是 JavaScript? JavaScript,也称为 JS,是一种符合 ECMAScript 规范的编程语言。这是一个高级别的、通常是即时编译的、多范式的。 Vanilla J

Free雅轩的博客 253

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TypeScript与Javascript的关系概述

TypeScript与Javascript的关系。

lza_csdn2019的博客 1088

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

TypeScript

1) 编程语言(Java\php\net\python\c\c++\c#\js\ts...)静态类型的语言和动态类型的语言是根据类型检查的时机,可以分为 静态类型 和动态类型。js是解释型的语言,没有编译阶段,可以直接被浏览器识别;js是属于动态类型的语言。(是否允许隐式转换):允许---弱类型;ts不能直接被浏览器识别---需要转化为js后才能被浏览器识别。ts是js的超集,添加了类型系统的 js,适用于任何规模。(2)强类型 和 弱类型 的语言。ts完全支持 es6 语法。ts是 微软公司出的。...

m0_67367168的博客 521

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

TypeScript的介绍

ts介绍

s_turnTurn的博客 251

typeScript的编译和环境构建

TypeScript是拥有类型的JavaScript超集,它可以编译成普通、干净、完整的JavaScript代码。有着以下的特点:始于JavaScript,归于JavaScript:TypeScript从今天数以百万计的JavaScript开发者所熟悉的语法和语义开始。使用现有的JavaScript代码,包括流行的JavaScript库,并从JavaScript代码中调用TypeScript代码;

YangJing17的博客 1578

【前端学习笔记】TypeScript 快速上手

视频:https://www.bilibili.com/video/BV1784y1c7V9 内容概要 强类型与弱类型 静态类型与动态类型 JavaScript自有类型系统的问题 Flow静态类型检查方案 TypeScript语言规范与基本应用 1、强类型与弱类型(类型安全) 强类型语言中不允许任意类型的隐式类型转换,语法层面的限制,在编译阶段就会报错,而不是通过逻辑判断。 javascript与python 2、静态类型与动态类型(类型检查) 静态类型:变量声明是,类型就是确定的,声明过后,类型不允许

luciozhang的博客 548

如何评价 TypeScript?

王泽 Hello Egret 338 人赞同了该回答 怒答。 TypeScript 是 JavaScript 的强类型版本。然后在编译期去掉类型和特有语法,生成纯粹的 JavaScript 代码。由于最终在浏览器中运行的仍然是 JavaScript,所以 TypeScript 并不依赖于浏览器的支持,也并不会带来兼容性问题。 TypeScript 是 JavaScript 的超集,...

jiaojsun的博客 1044

关于JS和TS的区别

JS(JavaScript)是由网景(Netscape)于1995年开发的TS(TypeScript)是由微软(Microsoft)于2012开发的。

qq_63625143的博客 506

LiveViewJS与Phoenix LiveView对比分析:TypeScript实现的特点与优势

LiveViewJS是一个基于LiveView范式的库,专为NodeJS和Deno环境设计,采用TypeScript实现响应式应用开发。它借鉴了Phoenix LiveView的核心思想,但通过TypeScript的静态类型系统和跨运行时特性,为JavaScript开发者提供了更熟悉且灵活的选择。本文将深入对比两者的技术特点,帮助开发者理解LiveViewJS的独特优势。 ## 技术架构对比:共

gitblog_01167的博客 453

从TypeScript教程吃透JS超集-2、TypeScript语言介绍

开发商:微软设计者:编程语言设计大师 Anders Hejlsberg,他也是 C# 和 .NET 的设计师本质:一种基于JavaScript语言的强类型编程语言目的:增强JavaScript的功能,使其更适合多人合作的企业级项目历史重大版本:2013年,微软的 Visual Studio 2013 开始内置支持 TypeScript 语言。2014年,TypeScript 1.0 版本发布。同年,代码仓库搬到了 GitHub。

qq_36690992的博客 1015

Typescript和Javascript的区别是什么?一文带您了解Typescript排名飙升的原因!

看见了github上2023年编程语言的排行榜,Java竟然被typescript挤出了前三!Javascript的登顶得益于node.js的出现,使js实现了在前后端的技术栈统一。那typescript为何又能在三足鼎立中占据一席之地呢?本文就对typescript进行一下概要介绍,本文并未涉及typescript的具体语法,注重分析Javascript和typescript的区别于联系,更适合小白了解到底什么是Typescript,我们为何选Typescript。

liwenxiang629的博客 613

typescript

TypeScript语言: JavaScript是一门 弱类型、动态类型 的语言。大规模应用下,JavaScript就会变得越来越复杂,开发周期也会更长。 TypeScript是一门 强类型、静态类型 的语言 强类型与弱类型[从类型安全的角度] JavaScript是弱类型 弱类型不会限制参数的类型js function foo(num) 弱类型语言允许随意的隐式类型转换[变量类型随时改变不是强弱类型的差异] 弱类型的代码灵活多变。也就失去了可靠性 弱类型的问题: const obj = {

77今天也学习了的博客 210

TypeScript快速上手, 强类型与弱类型

typesrcipt 语言: 是javascript 的超集或者扩展 1.强类型与弱类型(类型安全) 2.静态类型与 动态类型(类型检查) 强类型:强类型不允许随意的隐式类型转换, 弱类型:允许随意的隐式类型转换 静态类型:声明之后不能被修改 动态类型:运行阶段才能够明确变量类型,而是变量的类型随时可以改变 javascript 类型系统特征: 弱类型与动态类型 初识 typeScript ,如何安装 1.初始化项目 cnpm init -y 2.添加 typeScript...

ybilss的博客 543
上一篇: TypeScript 知识点总结
下一篇: 初识TypeScript编译器(tsc)
Bert.King
博客等级 码龄15年 280粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值