TypeScript的认识与入门学习

一、TypeScript 简介

TypeScriptJavaScript 的超集,是由微软公司开发的。
他处理了 JavaScript 的一些问题,语法更加严谨,适合开发 大型项目
在实际使用时,需要先编写.ts文件后在转换为.js文件使用。

1、出现背景

JavaScript产生于互联网1.0时代,是网景公司对抗微软时的产物。
因为当时的时代背景,导致JavaScript来了一招为快不破,后来虽然网景败了,但却留下了JavaScript。

因为JavaScript太赶时间了,所以在设计理念和严谨上都存在一些问题,随着时代推进,JavaScript的地位不断提高,在此前提下微软推出了基于JavaScript的TypeScript,用于解决JavaScript的缺陷。

TypeScript相比于JavaScript主要增加了数据类型、类、模块、接口、类型注解方面的功能。

2、相比优势

TypeScript相较于JavaScript的主要优势:

  • 语法严谨后带来的编码错误检测,可防止js中出现的用对象去加对象,对象到底是数字还是字符不明确,TypeScript可以直接声明为数字类型,没有赋值数字类型直接就报错了,从源头上解决了问题。
  • 完全按照TypeScript规范开发的代码更具可读性,代码更易维护,也正是因为这样。
  • 对面向对象的支持毕竟完善,对大型项目的开发比较友好。

3、是否使用

随着ECMA标准的进化,TypeScript与JavaScript的差异正在慢慢减少。
了解ES6标准的朋友都知道,JavaScript中已经支持块级作用域、箭头函数、类等。
所以,如果不是对面向对象特性有强烈的需求,使用TypeScript的意义并不大。
但这并不影响我们了解学习TypeScript,或许在不就的将来,新的ECMA发布后,你会发出这样的感叹:
这个新特性似曾相识!嗯,以前在TypeScript中用过。

二、TypeScript入门

1、开发环境

  • 安装node.js
  • npm i -g typescript
  • vscode

2、变量类型

  • number 数字
    let count: number = 12; //数字
    
  • string 字符串
    let name: string = '姓名'; //字符串
    
  • boolean 布尔
    let del: boolean = false; //布尔
    
  • 字面量 自定义
    let PI: 3.14159; //单个值时变量不可修改,类似常量;不班不这样用
    let server: '中国电信'|'中国移动'|'中国联通'; //只能是指定的这三个值之一
    let name: string | number; //联合类型,姓名可以为字符串或数字类型
    
  • any 任意
    let a: any; //取消了ts的类型限制,等同于js中变量的使用方式,不建议使用
    a = 10; //可以是数字
    a = 'abc'; //还可以是字符串等
    
    let b; //未设置类型时,默认为any类型
    b = 20;
    
  • unknown 安全的any
    let str: string; //字符串
    let unk: unknown; //
    str = unk; //有错误提示:给字符串赋值一个未知类型
    //类型断言
    str = unk as string;//告诉解析器unk就是个字符串,这时候就不会报错提示了
    str = <string>unk;//告诉解析器unk就是个字符串,这时候就不会报错提示了
    //any和unknown的区别
    let a: any;
    str = a; //不会错误提示,把str也祸害成没有类型的了
    
  • void 没有值
    //函数无返回值
    function setx():void{}
    
  • never 不能是任何值
    //毛都没有
    function err():never{
    	throw new Error('出错了');
    }
    
  • object 对象
    //毛都没有
    let user1: object; //js中对象太多了,一般不这样用
    let user2:{name:string}; //一般这样用,指定对象中有那些属性
    let user3:{name:string,iphone?:string}; //有问号的属性及可有可无
    let user4:{name:string,[propName:string]:any}; //name必须由,其他随意
    
  • array 数组
  • tuple 固定长度数组
  • enum 枚举

有了变量类型,主要规范了方法参数的类型。

//求和,只能传数字进来且返回数字
function sum(a:number,b:number):number{
	return a+b;
}
let result = sum(123,456);

持续更新中…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值