TypeScript-基本类型

时间:2020-02-23 14:46:20  来源:igfitidea点击:

在本教程中,我们将学习TypeScript中的基本类型。

TypeScript中的变量

我们使用let关键字在TypeScript中创建变量。

let name;

注意!在JavaScript中,我们使用var关键字来创建变量。

var name;

TypeScript中的类型

以下是TypeScript中的基本类型。

  • 布尔型
  • 数字
  • 字符串
  • 数组
  • 元组
  • 枚举
  • 任何
  • 空洞
  • 空和未定义
  • 决不

让我们讨论以上基本类型。
因此,打开您的文本编辑器或者IDE,然后编写一些代码。

类型创建变量的语法

let varName: varType;
varName = someVal;

//or we can write

let varName: type = someVal;

其中" varName"是给定" varType"类型的变量的名称,它以" someVal"作为值。

注意!给变量指定类型后,就不能再取其他类型的值。

这类似于Java之类的其他编程语言,在Java中," int"类型的变量只能采用整数值。

布尔型

类型为boolean的变量仅采用两个值之一,即true或者false。

在下面的示例中,我们将创建一个" boolean"变量。

let isGameOver: boolean;

现在," isGameOver"变量只能采用布尔值。

以下TypeScript代码在编译为JavaScript时会在浏览器控制台中为我们提供" isGameOver:false"。

let isGameOver: boolean;
isGameOver = false;
console.log("isGameOver: " + isGameOver);

数字

类型number用于存储浮点值。

在下面的示例中,我们以4种不同的方式存储数字。

let decimal: number = 10;
let hex: number = 0xA;
let binary: number = 0b1010;
let octal: number = 0o12;

字符串

为了处理文本数据,我们使用字符串类型的变量。

在下面的示例中,我们有一个保存字符串值的变量。

let fullname: string = 'theitroad';

我们可以使用双引号和单引号将一个字符串值括起来。

要创建多行字符串,我们可以使用反引号```。

let sentence: string = `The quick brown fox jumps
over the lazy dog.
`;
console.log(sentence);

我们甚至可以使用$$expr模板字符串来使用变量,如下所示。

不要忘记将字符串放在反引号中。

let fullname: string = 'theitroad';
let outputSentence: string = `My name is ${ fullname }.`;
console.log(outputSentence);

上面的代码将在浏览器控制台中显示"我的名字是theitroad"。

我们甚至可以计算表达式的结果。

let outputString: string = `1 + 2 = ${ 1 + 2 }`;
console.log(outputString);

上面的代码将打印出" 1 + 2 = 3"。

数组

像JavaScript一样,我们也可以在TypeScript中使用数组来将多个值存储在一个变量下。

在下面的示例中,我们将创建一个类型为number的数组。

let score: number[] = [1, 3, 5, 6, 8];

我们甚至可以使用通用数组类型" Array <type>"。

在下面的示例中,我们将创建一个字符串类型的数组。

let days: Array<string> = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];

元组

我们使用元组创建固定大小的数组。
并且数组每个元素的类型是已知的。

在下面的示例中,我们创建一个元组,该元组可以采用字符串,布尔值和数字类型的3个值。

let userData: [string, boolean, number] = ['theitroad', true, 10];

该值必须按照该顺序并与类型匹配。

以下代码是错误的,因为我们正在将数字值分配给字符串类型。

//this code will not work
let userData: [string, boolean, number] = [10, true, 10];

而且,在编译代码时,我们会收到以下错误消息。

$tsc
example/script/basic-type.ts(32,5): error TS2322: Type '[number, true, number]' is not assignable to type '[string, boolean, number]'.
  Type 'number' is not assignable to type 'string'.

枚举

枚举可帮助我们创建新类型并将名称添加到一组数值中。

在下面的示例中,我们创建一个新的Color类型,它可以采用以下给定值。

enum Color {Red, Green, Blue};

注意!新的类型"颜色"仅接受3个可能的值"红色","绿色"和"蓝色"。

第一个成员Red的数字为0,第二个Green成员的数字为1,Blue成员的数字为2。

枚举从0开始编号。

因此,使用上述Color类型,我们可以创建变量并分配给定值之一。

enum Color {Red, Green, Blue};
let myColor: Color = Color.Blue;
console.log("MyColor: " + myColor);    //this will print MyColor: 2

我们还可以为枚举成员分配不同的值。

在以下示例中,我们将"绿色"的值设置为10。
因此,"蓝色"将获得下一个值,即11。
而"红色"将获得默认的起始值0。

enum Color {Red, Green = 10, Blue};

any

如果不确定变量的类型,则将其设置为" any"。

let someVar: any;

someVar变量可以采用任何类型的值。

let someVar: any;
someVar = 10;
someVar = 'Hello World';
someVar = true;

同样,我们可以创建一个其元素类型未知的数组。

let dataArr: any[] = ['Hello World', true, 100];

void

" void"类型与" any"相反。

常用的函数是不会返回任何值的函数。

在下面的示例中,我们有一个不会返回任何值的函数,因此其返回类型设置为void

function helloWorld(): void {
  console.log("Hello World");
}

注意!创建类型为" void"的变量通常是没有用的,因为我们只能为其分配" undefined"或者" null"。

null和未定义undefined

类型为null和undefined的变量可以采用值null和undefined。
因此,它们本身并没有太多用处。

let uVar: undefined = undefined;
let nVar: null = null;

never

"never"类型表示永远不会出现的值的类型。

在下面的示例中,该函数具有"从不"返回类型,因为它永远不会到达执行结束。

function foo(): never {
  while (true) {
    //some code...
  }
}