TypeScript-基本类型
在本教程中,我们将学习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... } }