TS 小记(2)TypeScript 基础类型(上)

128 阅读3分钟

这篇文章,来学习一下 TypeScript 中的基础类型。

TypeScript 申明变量类型的方式和 Kotlin 相同,变量名后面加 : 变量类型

var/let/const 变量名: 变量类型 = 值;
// 例如:
var name: string = "Sam";

TypeScript 除了支持 JavaScript 的基础类型,还额外提供了枚举等类型。

布尔值

布尔值是指逻辑上的 true/false,在 JavaScript/TypeScript 中用 boolean 关键字来表示布尔类型。

let flag: boolean = false;

数字

number

和 JavaScript 一样,TypeScript 中所有的数字都是浮点数,类型是 number。除了支持十进制和十六进制字面量,TypeScript 还支持 ES 2015 引入的二进制和八进制字面量。

let decLiteral: number = 6;               // 十进制
let hexLiteral: number = 0xf00d;          // 十六进制
let binaryLiteral: number = 0b1010;       // 二进制
let octalLiteral: number = 0o744;         // 八进制

Number

Number 类是数字 number 的包装类。使用方式如下:

var num = new Number(value);
// 例如:
var num = new Number(10);

如果参数不能转换为一个数字,则会返回 NaN

Number 对象属性

  • MAX_VALUE:可表示的最大的数,值接近 1.79E+308,大于 MAX_VALUE 的值表示 Infinity
  • MIN_VALUE:可表示的最小的数,也就是最接近 0 的正数,值约为 5E-324,小于 MIN_VALUE 的值会被转化为 0。最大的负数是 -MIN_VALUE
  • NaN:非数字值(Not a Number)
  • NEGATIVE_INFINITY:负无穷大,溢出时返回这个值,比 MIN_VALUE 小。
  • POSITIVE_INFINITY:正无穷大,溢出时返回这个值,比 MAX_VALUE 大。
console.log("TypeScript Number 属性: "); 
console.log("最大值为: " + Number.MAX_VALUE); 
console.log("最小值为: " + Number.MIN_VALUE); 
console.log("负无穷大: " + Number.NEGATIVE_INFINITY); 
console.log("正无穷大: " + Number.POSITIVE_INFINITY);
// 输出
TypeScript Number 属性:
最大值为: 1.7976931348623157e+308
最小值为: 5e-324
负无穷大: -Infinity
正无穷大: Infinity
var month = 0 
if( month <= 0 || month > 12) { 
    month = Number.NaN 
    console.log("月份是:"+ month) 
} else { 
    console.log("输入月份数值正确。") 
}
// 输出
月份是:NaN

Number 的对象方法

列举几个常见的 Number 类的方法:

  • toString():把数字转化为字符串,可以指定进制,默认是 10 进制,可以在 2 ~ 36 进制之间选择。
var num = new Number(10); 
console.log(num.toString());  // 输出10进制:10
console.log(num.toString(2)); // 输出2进制:1010
console.log(num.toString(8)); // 输出8进制:12
  • toFixed():把数字转换为字符串,可以对小数点指定位数,默认不保留小数。
var num3 = 177.234 
console.log("num3.toFixed() 为 "+num3.toFixed())    // 输出:177
console.log("num3.toFixed(2) 为 "+num3.toFixed(2))  // 输出:177.23
console.log("num3.toFixed(6) 为 "+num3.toFixed(6))  // 输出:177.234000

字符串

和 JavaScript 中一样,TypeScript 中使用双引号(")或单引号(')来表示字符串,类型是 string

let name: string = "bob";
name = 'owen';

还可以使用 模板字符串,它支持 多行文本和内嵌表达式,用反引号( **** )表示。以 ${expr}` 形式来嵌入表达式。

let name: string = `Owen`;
let age: number = 18;
let desc: string = `Hello, my name is ${ name }.

I'm ${ age } years old.`;

// 运行结果
Hello, my name is Owen.
 
I'm 18 years old.

这个和下面写法效果相同:

let desc: string = "Hello, my name is" + name + ".\n\n" +
  "I'm " + age + " years old."

String

Stringstring 的包装类。使用方式如下:

var text = new String("Hello");
// 或者直接使用字符字面量赋值
var text = "Hello";

String 对象属性

  • length:字符串的长度。

数组

TypeScript 中有两种方式来定义数组。第一种是在元素类型后加上 [],表示这个类型元素组成的数组:

let list: number[] = [1, 2, 3];

第二种是使用数组范型,也就是 Array<元素类型>

let list: Array<number> = new Array(1, 2, 3);
// 或者
let list: Array<number> = [1, 2, 3];

数组解构

可以利用解构将数组中的元素同时赋值给多个变量。

var list: number[] = [1, 2];
var [x, y, z] = list;
console.log(x);   // 输出 1
console.log(y);   // 输出 2
console.log(z);   // 输出 UnDefined

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情