方式一
需求:要求定义一个数组, 这个数组中将来只能存储 数值 类型的数据:
let val: Array<number>;
val = [1, 3, 5];
console.log(val);
如上代码的含义为表示定义了一个名称叫做 val 的数组, 这个数组中将来只能够存储 数值 类型的数据,错误示例如下:
let val: Array<number>;
val = [1, 3, 'a'];
console.log(val);
方式二
需求:要求定义一个数组, 这个数组中将来只能存储 字符串 类型的数据:
let val: string[];
val = ['c', 'b', 'a'];
console.log(val);
如上代表的含义表示定义了一个名称叫做 val 的数组, 这个数组中将来只能够存储 字符串 类型的数据,错误示例如下:
let val: string[];
val = [1, 'b', 'a'];
console.log(val);
联合类型
let val: (number | string)[];
val = [1, 'b', 'a'];
console.log(val);
如上代表的含义表示定义了一个名称叫做 val 的数组, 这个数组中将来既可以存储 数值 类型的数据, 也可以存储 字符串 类型的数据,错误示例如下:
let val: (number | string)[];
val = [1, 'b', 'a', false];
console.log(val);
任意类型
let val: any[];
val = [1, 'b', 'a', false];
console.log(val);
如上代表的含义表示定义了一个名称叫做 val 的数组, 这个数组中将来可以存储 任意 类型的数据,没有错误示例
元祖类型
TS 中的元祖类型其实就是数组类型的扩展,元祖用于保存 定长 , 定数据类型 的数据
let val: [string, number, boolean];
val = ['BNTang', 18, true];
console.log(val);
如上代表的含义表示定义了一个名称叫做 val 的元祖, 这个元祖中将来可以存储 3 个元素, 第一个元素必须是 字符串 类型, 第二个元素必须是 数字 类型, 第三个元素必须是 布尔 类型超过指定的长度会报错,错误示例如下:
let val: [string, number, boolean];
val = ['BNTang', 18, true, false];
console.log(val);
存储元素的类型位置不能改变,例如第一个你指定为存储字符串就一定存储的是字符串的内容如果不是会报错如下:
let val: [string, number, boolean];
val = [18, 'BNTang', true];
console.log(val);
|
请发表评论