TypeScript入门笔记

TypeScript入门笔记

第一章 TypeScript简介

1.1 TypeScript简介

TypeScript 是由微软开发的一款开源的编程语言,TypeScript 是 Javascript 的超集,遵循最新的 ES6、ES5 规范,TypeScript 扩展了 JavaScript 的语法。TypeScript 更像后端 Java、C#这样的面向对象语言,可以让 JavaScript 开发大型企业项目。谷歌也在大力支持 Typescript 的推广,谷歌的 angular2.x+ 就是基于 Typescript 语法,最新的 Vue 、React 也可以集成 TypeScript。Nodejs 框架中的 Nestjs、midway 中用的就是 TypeScript 语法。

TypeScript = Type + JavaScript(为JS添加了类型系统)

1.2 TypeScript安装

安装步骤:
1.打开cmd命令
2.输入安装命令:npm i -g typescript 敲回车,来安装(可以添加版本号)
3.安装查看: tsc -v / tsc --version

1.3 TypeScript开发工具

开发工具使用:Visual Studio Code,已安装汉化插件

第二章 TypeScript数据类型

变量格式一:

let 变量名:变量类型 = 初始化值;

变量格式二:

let 变量名:变量类型 | undefined;
变量名= 变量值

2.1 数字类型

  • 除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015中引入的二进制和八进制字面量。
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;

2.2 布尔类型

  • 布尔值 boolean true/false值
let isDone: boolean = false;

2.3 字符串类型

  • string 单引号(推荐)或双引号或``都可以
let name: string = "bob";
name = "smith";

2.4 数组类型

  • 数组; 开发中, 数组中的元素为同一类型
  • 语法1:类型[]
// 表示数值数组
let list: number[];
let list: Array<number>;

let list: number[] = [1, 2, 3];
  • 语法2:使用泛型写法,Array<元素类型>
// 表示字符串数组
let list: string[];
let list: Array<string>    

let list: Array<number> = ['a', 'b', 'c'];

扩展: 申明二维数组
let arr:number[][] = [
[1,2,3],[7,8,9]
]

2.5 对象类型

对象类型的基本使用
  • js中属于对象的太多,添加object后等于是没有添加类型限制,开发很少用
  • 示例1:
// {}也表示对象,表示变量o必须是一个对象类型,在其中可以指定属性类型
// 以下示例表示对象o中只能有指定的属性名称和类型,以及个数
// 在属性名后面加?,表示该属性可选
let o: {
	name: string, 
	age: number,
	sex?: string
};

o = {name: '孙悟空',age: 18} // ok
o = {name: '孙悟空'} // 报错,少了一个age属性
o = {name: '孙悟空',age: 18,sex: '男'} // ok
  • 示例2:
// 需求:在一个对象中,我只有一个属性是有要求的,其他的属性名称、类型、个数都未知
let o: {
	name: string, 
	[propertyName: string]: any
}
/*
* 以上代码,[propertyName: string] 表示属性名是string(对象的属性名都是字符串类型)
* [propertyName: string]: any 表示该对象中的属性是任意类型,
*						如果any是string,表示该对象中的属性都必须是string类型
*/
  • 实例3:
function getObj(obj: object):object {  
	// do something  
	return {    
		name:"卡卡西"  
	}
}

console.log(getObj({name:"佐助"}))
console.log(getObj(new String('字符串')))
对象类型中的函数写法

指定对象中, 函数的类型

1.写法一:sayHi(name:string):void

const user: {  
	name:string  
	sayHi(name:string):void
}  

user = {  
	name:'张三'  
	sayHi(name) {    
		console.log('你好,我叫' + name)  
	}
}

2.写法二: add(n1:number, n2:number) => number

const user: {  
	name:string  
	add(n1:number, n2:number) => number
}

user = { 
	name:'李四'  
	add: function(a, b){    
		return a+b  
	}
}

2.7 null 类型

  • 表示此处不应该有值, 没有值了
  • 在TS中, 可以给已有类型的引用数据类型变量, 重新赋值null
let n: null = null 

2.8 undefined类型

  • 表示此处应该有值, 但是现在没有值
  • 申明了一个变量, 但是未赋值, 这个变量就是undefined
  • 在TS中, 可以给已有类型的基本数据类型变量, 重新赋值undefined
let u:undefined = undefined

TS新增类型

2.9 联合类型

  • 把多个类型联合为一个类型 (表示取值可以为多种类型中的一种)
  • |隔开
// 表示入参param可以是number或者string类型
// 出参为string类型
function getSomeThing(param: number|string):string {    
	return param+''
}

getSomeThing(123)
getSomeThing("字符串")
type MyType = 1 | 2 | 3 | 4 | 5;

let a: MyType 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值