这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
1.今天课程重点
JavaScript与typescript的区别,TS定义变量、对象、函数等,由于作者能力的有限,分享的笔记不多~
JavaScript与typescript的区别
JavaScript与typescript都是弱类型语言 而JavaScript是动态类型,typescript是静态类型
补充小知识
- 弱类型语言:是指数据类型可以被忽略,一个变量可以赋予不同数据结构的值,如在JavaScript中,它允许变量类型的隐式转换,例如字符串可以自动转化为数值,数值可以转化为字符串,如下面代码:
let a='123'
let b=4
let c=a+b
c的值为‘1234’
- 动态类型: 动态类型语言是指在运行期间才去做数据类型检查的语言,说的是数据类型,动态语言说的是运行是改变结构,说的是代码结构。动态类型语言的数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段。
- 静态类型:静态语言的数据类型是在编译期间确定的或者说运行之前确定的,编写代码的时候要明确确定变量的数据类型。
Typescript是静态类型:
可读性增强:基于语法解析TSDoc,ide增强,可以自动生成一些文档
可维护性增强:在编译阶段暴露大部分错误
因此在多人合作的大型项目中,可以获得更好的稳定性和开发效率
而且Typescript是JavaScript的超集,包含与兼容JS特性,支持共存
支持渐进式引入和升级
Typescript语法
- JS定义变量
const q='string';
const n=1;
const e=true;
const r=null; - TS定义变量
const q:string ='string';
const n:number=1;
const e:boolean=true;
const r:null=null;
我自己总结就是TS定义变量在JS的基础上加上了变量的类型也就是多了
:变量的数据类型
定义对象
定义对象是通过一个接口来定义
接口中要定义对象中的属性
接口中有三种属性:
- 只读属性:初始化之后不能赋值
-
可选属性:定义该属性可以不存在,一般是多选的情况 -
任意属性:约束所有对象属性都必须是该属性的子类型
以上是我对TS的一些基础知识笔记的分析理解。