第一章:TypeScript中的基本类型

第一章:TypeScript中的基本类型


前言

TypeScript是什么?(1)、是添加了类型系统的 JavaScript,适用于任何规模的项目;(2)、是一门静态类型、弱类型的语言;(3)、是完全兼容 JavaScript 的,它不会修改 JavaScript 运行时的特性;(4)、与标准同步发展,符合最新的 ECMAScript 标准。

一、typeScript有哪些特性:

1、类型声明: 是TS非常重要的一个特点;通过类型声明可以指定TS中变量(参数、形参)的类型,指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错;简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值。

2、自动类型推断:当对变量的声明和赋值是同时进行的,TS编译器会自动判断变量的类型;所以如果你的变量的声明和赋值时同时进行的,可以省略掉类型声明。

二、类型

TypeExampleDescription
string“Holle World”, “Hi”任意字符串
number12, 3, 4任意数字
booleantrue/false布尔值
字面量其本身限制变量的值就是该字面量的值
any*任意类型
unKnown*未知类型
void空值空值或undefinde
never没有值没有任何值
objectobj:{ name: string }任意的js对象
arraylet list: string[] = [ ‘苹果’, ‘香蕉’]任意的js数组
tuple[ 1, 2 ]元组:固定长度的数组
enumenum Gender { male = 1, female = 0 }枚举
1.string

代码如下(示例):

let name: string = 'apple';
2.number

代码如下(示例):

let num: number = 1;
3.boolean

代码如下(示例):

let bool: boolean = true;
4.字面量

代码如下(示例):

let num: 10;
num = 10;
5.any

任意类型在ts中最好不要广泛使用,否则就失去类型检查的意义;
代码如下(示例):

let name: any;
name = 1;
name = '李氏';
name = true;
6.unknown

未知类型;
代码如下(示例):

let name: unknown;
name = 10;
name = 'banner';
name = true;

let str: string = '张三';
str = name;  /* error 不能将unknown类型的变量再次赋值给已指定好类型的变量,这也是与any的区别所在 */

/* 如何解决这种问题? 方案如下 */
/* 方案一: 手动类型检查 */
if (typeof name === 'string') {
 str = name;
}

/* 方案二: as断言 */
/* 断言: 通俗来讲是告诉解析器该变量的实际类型是什么 */
str = name as string; /* 或者 */
str = <string>name;
7.void

空值,常用于function中;
代码如下(示例):

/* function没有返回值,默认隐式类型void */
function fn (): void {}
8.never

没有任何值;
代码如下(示例):

/* 声明function没有任何返回值 */
function fn (): never{}
9.object

任意的js对象;
代码如下(示例):

let obj: { name: string } 
obj = { name: '张三' }

let str: { name: string, [k: string]: any };
str = { name: '李四', age: 20, gender: '男' };
10.array

任意的js数组;
代码如下(示例):

let arr: string[] = ["apple", "banner"]
let arr: Array<string> = ["apple", "banner"]
11.tuple

元组:固定长度的数组;
代码如下(示例):

let arr: [string, number] 
arr= ['apple', 12]
12.enum

枚举;
代码如下(示例):

enum Gender {
	Male = 0,
	Female = 1
}
let personal: { name: string, gender: Gender }
personal= {
	name: '李四',
	gender: Gender.Male
}
13.type

类型别名;
代码如下(示例):

type numType = 1 | 2 | 3 | 4 | 5
let a: numType;
let b: numType;
let j: numType;

a = 2; // a = 3, a = 4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值