Typescript基础引入(基础类型、元组、枚举)

102 阅读3分钟

之前的文章大部分都写在CSDN,大部分文章都未迁移完成,文章内链接也展示没进行修改,点击链接会直接转跳至CSDN的文章,请见谅,过段时间迁移完成后会进行修改

系列文章目录

引入一:Typescript基础引入(基础类型、元组、枚举)

引入二:Typescript面向对象引入(接口、类、多态、重写、抽象类、访问修饰符)

第一章:Typescript基础知识(Typescript介绍、搭建TypeScript环境、基本数据类型)

第二章:Typescript常用类型(任意值any、数组Array、函数Function、元组Tuple、类型推论、联合类型)

第三章:Typescript基础知识(类型断言、类型别名、字符串字面量类型、枚举、交叉类型)


typescript是Javascript超集,是JavaScript+强类型 ts特点: 跨平台 可以运行在任何浏览器 任何操作系统 nodejs 静态类型校验:声明一个变量得时候就给定数据类型 重要赋值不是这个数据类型 校验

1.安装

cnpm install -g typescript

2.编写ts代码

// 1-hello.ts
function foo(a:number,b:number){
  return a+b;
}

let result = foo(1,2);
console.log(result);

3.编译运行

$ tsc 1-hello.ts  ---将ts文件编译为js文件
$ node 1-hello.js  ---运行js文件

4.基础类型 TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型

// 基本数据类型  静态类型校验
let a:number=1;
let b:string='hello';
let c:boolean=true;
let d:null=null;
let e:undefined=undefined;
console.log(a,b,c,d,e);//1 hello true null undefined


// 引用数据类型
let obj:Object = 1;
let obj1:Object;
obj1 = { name: 'zhangsan', age: 12 };

console.log(obj, obj1, '对象');//1 { name: 'zhangsan', age: 12 } 对象

let arr: (string | number | object | Function)[] = ['1', 2, 3, 4, {}, function () { }]
// 泛型
let arr1: Array<string> = ['4', '5', '6'];
console.log(arr, arr1, '数组');//[ '1', 2, 3, 4, {}, [Function (anonymous)] ] [ '4', '5', '6' ] 数组

let foo: Function = () => {
    console.log('我被调用了');
};
foo();//我被调用了

元组 元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 stringnumber类型的元组。

let arr2: [number, string, boolean] = [1, 'hello', true];
console.log(arr2);// [ 1, 'hello', true]

枚举 enum类型是对JavaScript标准数据类型的一个补充。

// 默认枚举
enum Season {
    spring,
    summer,
    autumn,
    winter
};
console.log(Season, Season.summer, Season[1]);
// {
//     '0': 'spring',
//     '1': 'summer',
//     '2': 'autumn',
//     '3': 'winter',
//     spring: 0,
//     summer: 1,
//     autumn: 2,
//     winter: 3
//} 1 summer

// 字符串枚举
enum Gender {
    male = '男',
    female = '女'
}
console.log(Gender, Gender.female);//{ male: '男', female: '女' } 女

Any

时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。 这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。 这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。那么我们可以使用any类型来标记这些变量:

let aa: any = 1;
console.log(aa);//1

void

某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是void

function sum(): void {
    console.log('我被调用了');
}
sum()//我被调用了

函数的可选参数

可选参数:在可选参数名的后面添加 ?(问号)

function sum1(b: string, a?: number) {
    console.log(a, b);
}
sum1('1', 2);//2 1