-
object类型, 表示对象类型, 举例
let a: object; // 声明变量a为对象类型 let b = {}; // 声明b为对象类型
一般情况下, 我们不这么使用。 因为声明为object或者{}没有意义。 我们通常这样做
let a: {name: string, age: number}; //定义一个对象变量a, 包含属性name和age, 并且name的值为string类型, age的值为 number类型, 要使用a这个对象, 必须有name和age属性 a = {name: "飞翔的企鹅"}; // 只有name属性, 错误 a = {name: "飞翔的企鹅", age: 18}; // 正确 // 如果要声明一个对象变量, 只必须name属性, 其他属性可选, 可以这样做 let b: {name: string, [propName: string]: any}; b = {age: 18, gender: "male"}; // 无必须name属性, 错误 b = {name: "飞翔的企鹅", age: 18}; // 有必须name属性, 正确 b = {name: "飞翔的企鹅", age: 18, gender: "male"}; // 有必须name属性, 正确 // 设置函数结构的类型声明 let c: (x: number, y: number)=> number; c = function(x, y) { return x + y; } console.log( c(1, 1) ); // 打印 2
-
array类型, 表示数组类型, 举例
// 数组的两种表现方式 // 1. 语法: 关键字 变量名: 类型[] let a: string[]; a = ['1', '2', '3']; // 2. 语法: 关键字 变量名: Arrary<类型> let b: Arrary<number>; b = [1, 2, 3, 4, 5];
-
tuple类型(TS新增类型), 表示元组类型, 实质为固定长度的数组, 举例
let a: [string, string]; a = ['hello', 'world']
-
enum类型(TS新增类型), 表示元组类型, 举例
enum a { spring = 0, // 默认从0开始 summer = 1, autumn, winter } console.log(a.spring) // 打印 0, 枚举值默认从0开始
补充: 类型的别名, 举例
// 使用myString替代string
type myString = string;
let a: myString = "hello world";
type myNum = 1 | 2 | 3 | 4 | 5;
let b: myNum = 1; // 1是myNum类型, 正确
let b: myNum = 2; // 2是myNum类型, 正确
let b: myNum = 6; // 6不是myNum类型, 错误