布尔值
最基本的数据类型就是简单的true/false值,在JavaScript和TypeScript里叫做boolean(其它语言中也一样)。
let isDone:boolean = false
数字
和JavaScript一样,TypeScript里的所有数字都是浮点数。 这些浮点数的类型是 number。 除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015中引入的二进制和八进制字面量。
let decLiteral:number = 6;
let hexLiteral:number = 0xf00d;
let binaryLiteral: number = 0b0101;
let octalLiteral:number = 0o776
字符串
和JavaScript一样,可以使用双引号( ")或单引号(’)表示字符串,还可以使用模版字符串。
let name:string = 'zhangsan'
let names:string = 'lisi'
let sentence:string = `my name is ${name}`
数组
第一种,可以在元素类型后面接上 [];
第二种方式是使用数组泛型,Array<元素类型>。
let list: number[] = [1,2,3]
let lists: Array<number> = [1,2,3]
元组 Tuple
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
// Declare a tuple type
let arr: [string, number];
// Initialize it
arr = ['hello', 10]; // OK
// Initialize it incorrectly
arr = [10, 'hello']; // Error
枚举
enum类型是对JavaScript标准数据类型的一个补充。
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
console.log(c)
接口
TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。 在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。
interface LabelledValue {
label: string;
}
function printLabel(labelledObj: LabelledValue) {
console.log(labelledObj.label);
}
let myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);
带有可选属性的接口与普通的接口定义差不多,只是在可选属性名字定义的后面加一个?符号。
interface SquareConfig {
color?: string;
width?: number;
}
只读属性:在属性名前用 readonly来指定只读属性
interface Point {
readonly x: number;
readonly y: number;
}
这是一篇沉没于知识大海的博客; 每天进步一点点,记录成长点滴。–john