TypeScript学习笔记(一) | 数据类型

151 阅读2分钟

| 概述

官网 截图2.png

| 开发工具

  1. 全局安装TypeScript
npm install typescript -g
  1. 使用ts-node插件编译

    安装

npm install -D tslib @types/node
npm install -g ts-node
  1. 第一个TS代码
function say(){
    let say: string = 'hello world'
    console.log(say)
}
say()

执行ts-node ts文件名

输出

image.png

| 数据类型

1. 数字类型/字符串类型

let a:number = 1;
let b:string = '水';

2. 数组类型
方式1
全部为数组or字符串

let arr:number[] = [1,2,3,4];  // ✅
let arr:sring[] = ['ad','da','dad'];  // ✅

let arr:number[] = [1,2,'3',4];  // ❌	

方式2

let arr:Array<number> = [1,2,3,4]; // ✅
let arr:Array<sring> = ['ad','da','dad']; // ✅

3.元组类型(tuple)
属于数组的一种
可以指定数组某一项的类型

// 需要一一对应且不能多也不能少
let arr:[number,string,boolean,string] = [2323,'ada',true,'adada']; // ✅

4.枚举类型(enum)
顾名思义就是定义一个数字对应的某些状态,如

pay_status 0 未支付 1 支付 2 交易成功
flag 1 表示true 0 表示 false

主要用于提高代码可读性

enum Flag {success=1,error=0} // 定义名为Flag的枚举 
let result:Flag = Flag.success // 使用枚举
console.log((result));  // 1

没有赋值的话打印的是枚举里面的变量索引值
如果上一个变量是有值的,那么就在这个值的基础上+1

enum Color {red,blue=5,yellow} 
let c:Color= Color.blue; 
console.log(c); // 5
console.log(Color.red); // 0
console.log(Color.yellow); // 上一个变量值为5,因此+1等于6

反向映射: (value->key)

enum state  {
    Start = 0,
    Second,
    Three
}

console.log(state.Second); // 1	正向映射
console.log(state[0]); // Start  反向映射

注意:在字符串枚举中没有反向映射。

5.任意类型(any)
顾名思义就是和js定义一个变量一样,不要求类型是何种。

let num:any = 1231;
let num: any = 'aada';

用处
获取dom元素的时候,dom的类型复杂多样,所以用any比较好

let dom:any = document.getElementById('dada');
dom.style.color = '#fff';

6.null与undefined
用来定义未赋值的变量
使用了null,必须要有undefined
| 符号表示或的意思

let b:null | number | undefined;
console.log(b); // undefined
b = null;
console.log(b) // null

/** undefined 使用 **/
let c:undefined;
console.log(c); // undefined
// or
let c:undefined | number; // 或
console.log(c); // undefined
c = 324;
console.log(c); // 324

7.void类型
表示没有任何类型,一般用于定义方法时方法没有返回值的时候

function fn:void () {
    console.log(111)
}

8.never类型
是其他类型(包括undefinednull)的子类型
比如抛出一个error对象时

let a:never;
a=(()=>{
    throw new Error(‘错误’)
})()