TS和JS,type和interface

本文介绍了TypeScript(TS)的基本概念,强调其作为JavaScript的超集,提供了静态类型检查和面向对象特性。TS的主要特点是面向大型项目,提供编译时错误检测。文章详细比较了type和interface的区别,包括type主要用于非对象类型的别名,而interface则专注于定义对象类型,且接口支持合并。同时,文中列举了类型别名和接口在不同场景下的应用实例。
摘要由CSDN通过智能技术生成

TS和JS
type和interface

什么是TS?

概念:
Ts是一个渐进式包含类型的js超集,它的作用就是为js变量提供类型支持,可以实现静态检查,高效的重构代码以及寻找bug,将js切换为基于类的面向对象的语言。最后,ts都会被编译成简单的js代码,可以使用一些js没有提供的面向对象的概念,比如说接口属性泛型。允许我们在编译的时候对代码进行错误检测和类型检测。

特点:
面向项目:
TS - 面向解决大型的复杂项目、架构、代码维护复杂场景
JS - 脚本化语言,用于面向简单页面场景

自主检测:
TS - 编译时,主动发现并纠正错误
JS - 运行时,执行报错

类型检测:
TS - 强类型语言,支持动态和静态的类型检测
JS - 弱类型语言,无静态类型选项

运行流程:
TS - 依赖编译,依靠编译打包实现在浏览器端的运行
JS - 可直接在浏览器端运行

复杂特性:
TS - 模块化、接口、泛型
举栗: 问: 在字符串后面加上:string,代码运行时,这个string还存在吗? 有什么办法在运行时改变这个string吗?
答案: 不存在了,也没必要去修改这个string,它是在编译时为变量指定了一个类型

TS 类型和语法
类型: boolean 、string 、number 、array、 null 、undefined、unknown、never、any、tuple - 元祖、 enum、void。

上述两种方式any 和unknown 有何区别??
1、任何类型都可以是any类型,ts 允许any类型的值进行任何操作,对它一路绿灯,等于免检标签。可以访问任意属性和方法。
2、任何类型都可以是unknown类型,一旦打上标签,会被重点检查,只要类型检查通过了才能进行操作。

更可靠:TS引入类型定义(进行类型检查)和编译器,可以避免JavaScript大多数runtime错误,更可靠,易维护;
更清晰:TS中显式类型声明可以提升代码的可读性,代码校验可以全部交给编译器负责;
更广泛:TypeScript是JavaScript的超集,可以在TypeScript代码中混合使用任何JavaScript库和代码。
更时尚:ts有很多方便的特性,比如可选链

type和interface的区别

相同点:

1.类型别名和接口都可以用来描述对象或函数
2.类型别名和接口都支持扩展
interface可以继承interface,继承type,使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值