一、使用环境
- Mac 电脑
- WebStorm
- TypeScript3.x版本
二、需要了解的基本类型有哪些
数据类型有两种:
A、原始数据类型 (Primitive data types)
- boolean 布尔值
- number 数值
- string 字符串
- null 空值
- undefined 未定义
- Symbol ES6 中的新类型
B、非原始类型
- 数组
- Tuple 元祖
- enum 枚举
- never 永不存在的值的类型
- void
- any 任意类型
- 联合类型
- 函数类型
- 对象类型
三、原始数据类型
3.1 布尔类型(boolean)
let isSuccess : boolean = true; // 只有true/false
注意:使用构造函数 Boolean 创造的对象不是布尔值,返回一个Bool对象。
let boolObjcet : any = new Boolean(1); //返回bool对象
3.2 数值类型(number)
var pricecount : number = 3.04;
var notANumber : number = NaN;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
注意:所有数字都是浮点数
3.3 文本数据类型(string)
//字符串
let personname : string = '小名';
//多行字符串 模板字符串
let moreString: string = `Hello, my name is ${personname} I will be good ${isSuccess}`;
//其中`用来定义 ES6 中的模板字符 串,${expr} 用来在模板字符串中嵌入表达式。
注意:
- 字符串可以使用双引号( ")或单引号(')表示;
- 字符串模版使用(``),变量使用${变量名}
3.4 空类型 Null 和 Undefined 以及void
void 表示没有任何类型 ,没有函数返回值
undefined 类型的变量只能被赋值为 undefined
null 类型的变量只能被赋值为 null。
与 void 的区别是,undefined 和 null 是所有类型的子类型
let nul : null = null;
let defin : undefined = undefined;
function message(mess : string) : void{}
但是有时候你可能会看到如下情况,是联合类型,稍后会讲解
let a : string | null | undefined
3.5 Symbol ES6 中的新类型
symbol类型的值是通过Symbol构造函数创建的
特点一:可选的字符串key
const symbol = Symbol("key"); // 可选的字符串key
特点二:字符串一样,symbols也可以被用做对象属性的键。
class ClassSymbol {
[symbol](){
return "344"; //
}
}
特点三:Symbols是不可改变且唯一的。
let sym2 = Symbol("key");
let sym3 = Symbol("key");
sym2 === sym3; // false, symbols是唯一的
特点四:可以与计算出的属性名声明相结合来声明对象的属性和类成员。
let cc = new ClassSymbol();
console.log(cc[symbol]());
symbol成为了一种新的原生类型,就像number和string一样
特点五:内置的symbols表示语言内部的行为
Symbol.hasInstance方法,会被instanceof运算符调用。
构造器对象用来识别一个对象是否是其实例。
Symbol.isConcatSpreadable布尔值,
表示当在一个对象上调用Array.prototype.concat时,这个对象的数组元素是否可展开。
Symbol.iterator方法,被for-of语句调用。返回对象的默认迭代器。
Symbol.match方法,被String.prototype.match调用。正则表达式用来匹配字符串。
Symbol.replace方法,被String.prototype.replace调用。正则表达式用来替换字符串中匹配的子串。
Symbol.search方法,被String.prototype.search调用。正则表达式返回被匹配部分在字符串中的索引。
Symbol.species函数值,为一个构造函数。用来创建派生对象。
Symbol.split方法,被String.prototype.split调用。正则表达式来用分割字符串。
Symbol.toPrimitive方法,被ToPrimitive抽象操作调用。把对象转换为相应的原始值。
Symbol.toStringTag方法,被内置方法Object.prototype.toString调用。返回创建对象时默认的字符串描述
Symbol.unscopables对象,它自己拥有的属性会被with作用域排除在外。
如需了解更多知识
TypeScript学习笔记之五类(Class)
TypeScript学习笔记之四接口(Inferfaces)
TypeScript学习笔记之三非原始数据类型
TypeScript学习笔记之二基本数据类型
TypeScript学习笔记之一初见TypeScript