从0开始学习TypeScript-基础类型

250 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

今天开始学习TypeScript,在学习过程中,讲道理初次接触TypeScript发现当中的变量声明,让我有似曾相识的感觉,那就是曾经用过的VB.Net,类型都在变量后,如下

Dim n As Integer = 1000;

确实看起来很别扭,在接下来的学习中我会将现有语言和后端语言C#相比较着学习,因为C#创始者创造了TypeScript,所以语言应该有很多共通的,学起来应该也快些,当然不局限于C#,基础类型包括C 、C++、 Java 以及其他的都有相同之处。

布尔值
//TypeScript
let bol: boolean = false;
//C#
bool bol = false;
字符串
//TypeScript
let str: string = "字符串";
//C#
string str = "字符串";
数字
//TypeScript
let num: number = 1000;
//C#
int num = 1000;
数组
//TypeScript
let arr: number[] = [1,2,3];
//使用泛型
let arr: Array<number> = [1, 2, 3];
//C#
int[]  arr = new int[3]{1,2,3};
元组Tuple

声明一个元组第一个参数接收string,第二个接收int,必须保证顺序赋值,不然类型错误

let x: [string, number];
x= ["字符串",1000]

在C#中的元组类型和Typescript也是差不多的,是在C# 4.0引入的,C#有2种初始化方式,赋值方式也有所不同

//使用构造函数初始化
//Tuple<string, int> tuple = new Tuple<string, int>("字符串",1000);
//使用静态函数初始化
Tuple<string, int> tuple = Tuple.Create("字符串", 1000);
Console.WriteLine(tuple.Item1);
Console.WriteLine(tuple.Item2);
枚举

首先枚举在很多语言中都存在,作用也很大,刚工作那会,日志类型在代码中写1 2 3 4被领导骂过,吐槽为什么不用枚举,所以记忆比较深刻

//数字如果写了那就按照数字来,如果只写一个那么就会一次叠加
enum LogType
{
    Info =1,
    Warn =2,
    Error=3
}
console.log(LogType.Error);
//3

Typescript中的枚举和C#中的枚举声明和使用一模一样

//数字如果写了那就按照数字来,如果只写一个那么就会一次叠加
public enum LogType
{
    Info =1,
    Warn 
    Error
}
Console.WriteLine(LogType.Info);
//1
Any

看到Any类型我想起了C#中的Object类型,当然作者设计最初目的是为了更好的类型兼容,但是在实际中,很多开发估计 万物皆可Any一把梭,偷懒神器,对我来说同样适用,但是屎山就这么出来的....

//此时Any代表Number
let a:Any = 0;
//此时Any代表string
let a:Any = "字符串";
//此时Any代表bool
let a:Any = false;
//此时Any代表数组
let a:Any = [1,2,3];
//此时Any代表元组
let a:Any = ["字符串",1000];

我感觉前面介绍的都没什么意义了,就此结束吧。。。。。。会用Any,完全不用3天精通Typescript类型系统

当然也得看看C#中的Object,但是C#中存在Object的原因和Typescript差别很大,当然只需要知道这么回事就行了,我敢保证你可以在Typescript随处使用Any,但是不要再C#中这样做,因为会被人骂死

//此时Object代表int
Object a = 0;
//此时Object代表string
Object a = "字符串";
//此时Object代表bool
Object a = false;
//此时Object代表int类型数组
Object a = [1,2,3];
//此时Object代表元组
Object a = new Tuple<string, int>("字符串",1000);

\