TypeScript是一种JavaScript的超集,它为JavaScript添加了静态类型系统。这使得在编码时可以更早地发现错误,并且可以提高代码的可读性和可维护性。在TypeScript中,有多种基本数据类型可以使用,这些类型在编程过程中非常常见。本文将详细介绍这些数据类型,并提供相应的示例代码。
在TypeScript中,数字类型表示为number
,它包括浮点数值。可以为变量分配任何数值,包括小数、十六进制、二进制和八进制字面量。但是,要使用二进制和八进制字面量,必须使用遵循ECMAScript 2015或更高版本的TypeScript。以下是声明数值的一些示例:
let decimalValue: number = 10;
let hexaDecimalValue: number = 0xf10b;
let binaryValue: number = 0b110100;
let octalValue: number = 0o410;
当需要使用文本数据时,可以使用字符串类型,用关键字string
表示。与JavaScript一样,TypeScript也使用双引号(")和单引号(')来包围字符串值。如果想跨越多行或嵌入表达式(例如:${expression}),可以使用模板字符串。模板字符串由反引号(`)包围。以下是一些示例:
let firstName: string = "Kunal";
let lastName: string = 'Chowdhury';
let message: string = `Hi, my name is: ${firstName} ${lastName}`;
let spannedMessage: string = `Hi,
My name is: ${firstName} ${lastName}`;
在TypeScript中,布尔数据类型用于声明变量,使用boolean
关键字。以下是声明布尔类型变量的简单代码:
let isPrimaryAccount: boolean = true;
let hasCards: boolean = false;
枚举数据类型(enum
)是一组具有更友好名称的数值。这是TypeScript在JavaScript基础上提供的一个额外功能。枚举数据类型的变量使用enum
关键字声明。以下是如何在TypeScript中声明枚举变量并使用它的示例:
enum CardTypes { Debit, Credit, Virtual }
let card: CardTypes = CardTypes.Debit;
默认情况下,枚举值从0开始,但也可以手动设置它的成员值。以下是两个示例:
enum CardTypes { Debit = 1, Credit, Virtual }
enum CardTypes { Debit = 1, Credit = 3, Virtual = 5 }
在TypeScript中,可以使用null
关键字声明一个变量,并且只能将null
值赋给它。由于null
是所有其他类型的子类型,可以将它赋给number
或boolean
值。同样,可以使用undefined
关键字作为数据类型来存储undefined
值。以下是示例:
let nullValue: null = null;
let numericValue: number = null;
let undefinedValue: undefined = undefined;
let numericValue: number = undefined;
在编码过程中,如果不确定一个值的数据类型,因为它的内容是动态的,可以使用any
关键字来声明该变量。这在从用户或第三方库/服务获取输入时非常有用。当声明一个具有混合数据类型的数组时,这也很有用。这类似于C#中的dynamic
关键字。以下是示例:
let dynamicValue: any = "Kunal Chowdhury";
dynamicValue = 100;
dynamicValue = 0b1100101;
dynamicValue = true;
let dynamicList: any[] = ["Kunal Chowdhury", "Free User", 21, true];
never
类型表示永远不会出现的值的数据类型。例如,以下函数总是抛出异常,因此永远不会返回值。因此,可以将函数的返回类型设置为never
。以下是函数声明的示例:
function throwError(message: string): never {
throw new Error(message);
}
就像JavaScript一样,可以在TypeScript中使用数组,并且可以以以下两种方式之一定义它,其中第二种方法是声明数组的更通用方式:
let marks: number[] = [80, 85, 75];
let marks: Array = [80, 85, 75];
// 正确
let person: [string, number] = ["Kunal", 2018];
// 错误
let person: [string, number] = [2018, "Kunal"];
// 正确
let person: [string, number] = ["Kunal", 2018, "India"];
// 正确
let person: [string, number] = ["Kunal", 2018, 21];
// 错误
let person: [string, number] = ["Kunal", 2018, true];