首页 > 其他分享 >TsVSJs之间的区别

TsVSJs之间的区别

时间:2023-06-07 22:33:26浏览次数:38  
标签:val 区别 res TS JS TsVSJs let 之间 test

一、观察

1. JS 平常的数据类型

let val;
val = 123;
val = "123";
val = true;
val = [1, 3, 5];

注意点: 由于JS是弱类型的, 所以只要定义了一个变量, 就可以往这个变量中存储任意类型的数据 也正是因为如此, 所以会给我们带来一个问题

2. 假设a是一个数组, b是一个数值

function test(a, b) {
    return a.length + b;
}
> let res = test([1, 3, 5], 10);
console.log(res);
上面会正常的输出 : 13

3. 好这只是我们的期望a是数组假如?

> let res = test(1, 10);
console.log(res);
上面则会输出什么呢?

二、问题

经过我们的小例子可以看出JS是不严格的未在编写时候就提示这里是错误的!!!

1. TS

安装我们的TS 提前要有node环境哦

打开命令行安装 npm install typescript -g 全局安装一下

TsVSJs之间的区别_编译工具

它会安装一个 tsc的编译工具 就和less sass一样编译成可运行的js文件

2.体验TS

创建02-体验.ts文件

注意点: 由于TS 并不是一门新的语言,而是对JS对扩展, 所以我们可以在TS文件当中直接编写JS代码

let val: number; // 定义指定参数类型
// 数字
val = 123;
// 报错
val = "123";
val = true;
val = [1, 3, 5]

TsVSJs之间的区别_数组_02

3. 严格的TS

期望a是一个数组, b是一个数值

// 定义限制any[]为数组类型 number 数字
function test(a:any[], b:number) {
    return a.length + b;
}

// 正确
> let res = test([1,3,5], 10);
console.log(res);

// 直接编译器提示错误
let res = test(1, 10);
console.log(res);

TsVSJs之间的区别_编译工具_03

运行02-体验TS.ts

利用我们刚刚下载的TS插件当中给我们安装了一个tsc的东西

TsVSJs之间的区别_编译工具_04

编译成功后

TsVSJs之间的区别_弱类型_05

编译错误代码

TsVSJs之间的区别_数组_06

提示期望得到一个数组,这样子TS就帮助弱类型变成强类型了

标签:val,区别,res,TS,JS,TsVSJs,let,之间,test
From: https://blog.51cto.com/yangbuyi/6435897

相关文章

  • @Param、@PathVariable 和 @RequestParam的使用场景和区别
    @Param、@PathVariable和@RequestParam的使用场景和区别@Param注解:使用框架:MyBatis(持久层框架),一般只在xxxmapper.java上使用,当传输的数据超过一个时,需要使用它来取别名,否则数据库无法区分用途:指定方法参数与SQL查询参数的对应关系。场景:在MyBatis中,@Param注解用......
  • 2023-06-07:Redis 持久化方式有哪些?以及有什么区别?
    2023-06-07:Redis持久化方式有哪些?以及有什么区别?答案2023-06-07:Redis提供了两种持久化机制:RDB和AOF。RDBRDB持久化是将Redis当前进程中的数据生成快照并保存到硬盘的过程。快照指的是Redis在某一时刻的内存状态的记录,类似于拍照一样把数据保存下来,因此也被称为Redis的数据库快照(Re......
  • 2023-06-07:Redis 持久化方式有哪些?以及有什么区别?
    2023-06-07:Redis持久化方式有哪些?以及有什么区别?答案2023-06-07:Redis提供了两种持久化机制:RDB和AOF。RDBRDB持久化是将Redis当前进程中的数据生成快照并保存到硬盘的过程。快照指的是Redis在某一时刻的内存状态的记录,类似于拍照一样把数据保存下来,因此也被称为Redis的数据库快照(Re......
  • 深入理解注解驱动配置与XML配置的融合与区别
    摘要:本文旨在深入探讨Spring框架的注解驱动配置与XML配置,揭示两者之间的相似性与差异。本文分享自华为云社区《Spring高手之路2——深入理解注解驱动配置与XML配置的融合与区别》,作者:砖业洋__。本文旨在深入探讨Spring框架的注解驱动配置与XML配置,揭示两者之间的相似性与差异。......
  • [Docker/K8S]Docker与K8S的区别
    1定义角度Docker是一种开放源码的应用容器引擎,允许开发人员将其应用和依赖包打包成可移植的容器/镜像中;然后,发布到任何流行的Linux或Windows机器上,也能实现虚拟化。该容器完全使用沙箱机制,彼此之间没有任何接口。k8s,全称kubernetes,是一种开放源码的容器集群管理系统,能......
  • 关于input( )和sys.stdin.readline( )的区别
    sys.stdin.readline()会将标准输入全部获取,包括末尾的'\n',input()会把‘\n’忽略sys.stdin.readline().strip() 去掉末尾的换行符, importsysa=sys.stdin.readline().strip()b=input()print(a,type(a))print(b,type(b))#678<class'str'>#678<clas......
  • SX1262 与 SX1278、SX1276 有什么区别?
    通常的物联网解决方案和设备一直都非常昂贵,或在实施中不切合实际。理想的无线连接技术应该是低成本、高可靠性的,可进行长距离传输,且拥有超长的电池续航时间。像zigbee、Bluetooth和Wi-Fi这样的短距离技术不能满足这些要求,蜂窝移动网络虽然支持更长的距离,但电池续航时间太短。为了......
  • C#中委托和事件的区别
    大致来说,委托是一个类,该类内部维护着一个字段,指向一个方法。事件可以被看作一个委托类型的变量,通过事件注册、取消多个委托或方法。本篇分别通过委托和事件执行多个方法,从中体会两者的区别。 □通过委托执行方法classProgram{staticvoidMain(string[]args){Exampleexample=......
  • 渗透测试、漏洞扫描、代码审计指什么?三者有何区别?
    在网络安全体系中,渗透测试、漏洞扫描、代码审计都是非常重要的存在,属于三种不同的安全评估类型,那么渗透测试、漏洞扫描、代码审计三者区别是什么?本文为大家简单介绍一下。漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发......
  • 探讨B/S与C/S架构的区别
    前言这几天听课,听到关于B/S架构和C/S架构的东西,颇有感触。边查阅资料边写了这篇随笔。C/S架构C/S架构是比较早期出现的一种系统设计架构。曾经出现过两层C/S和三层C/S架构。我们一般常见的以两层C/S架构为主。我们大家在使用计算机软件过程中基本上一定会遇见C/S架构,例如我们玩......