03. 前端口试题之ts : typescript 的数据范例有哪些?

打印 上一主题 下一主题

主题 875|帖子 875|积分 2629

一、typescript是什么

typescript 和 javascript几乎一样,拥有雷同的数据范例,别的在javascript底子上提供了更加实用的范例供开发利用
在开发阶段,可以为明确的变量定义为某种范例,这样typescript就能在编译阶段举行范例检查,当范例不合符预期结果的时候则会出现错误提示
二、typescript有哪些数据范例

typescript 的数据范例主要有如下:


  • boolean(布尔范例)
  • number(数字范例)
  • string(字符串范例)
  • array(数组范例)
  • tuple(元组范例)
  • enum(摆列范例)
  • any(恣意范例)
  • null 和 undefined 范例
  • void 范例
  • never 范例
  • object 对象范例
boolean

布尔范例
  1. let flag:boolean = true;
  2. // flag = 123; // 错误
  3. flag = false;  //正确
复制代码
number

数字范例,和javascript一样,typescript的数值范例都是浮点数,可支持二进制、八进制、十进制和十六进制
  1. let num:number = 123;
  2. // num = '456'; // 错误
  3. num = 456;  //正确
复制代码
进制表示:
  1. let decLiteral: number = 6; // 十进制
  2. let hexLiteral: number = 0xf00d; // 十六进制
  3. let binaryLiteral: number = 0b1010; // 二进制
  4. let octalLiteral: number = 0o744; // 八进制
复制代码
string

字符串范例,和JavaScript一样,可以利用双引号(")或单引号(')表示字符串
  1. let str:string = 'this is ts';
  2. str = 'test';
复制代码
作为超集,当然也可以利用模版字符串``举行包裹,通过 ${} 嵌入变量
  1. let name: string = `Gene`;
  2. let age: number = 37;
  3. let sentence: string = `Hello, my name is ${ name }
复制代码
array

数组范例,跟javascript同等,通过[]举行包裹,有两种写法:
方式一:元素范例后面接上 []
  1. let arr:string[] = ['12', '23'];
  2. arr = ['45', '56'];
复制代码
方式二:利用数组泛型,Array<元素范例>:
  1. let arr:Array<number> = [1, 2];
  2. arr = ['45', '56'];
复制代码
tuple

元祖范例,允许表示一个已知元素数目和范例的数组,各元素的范例不必雷同
  1. let tupleArr:[number, string, boolean];
  2. tupleArr = [12, '34', true]; //ok
  3. typleArr = [12, '34'] // no ok
复制代码
赋值的范例、位置、个数必要和定义(生明)的范例、位置、个数同等
enum

enum范例是对JavaScript标准数据范例的一个增补,利用摆列范例可以为一组数值赋予友爱的名字
  1. enum Color {Red, Green, Blue}
  2. let c: Color = Color.Green;
复制代码
any

可以指定任何范例的值,在编程阶段还不清楚范例的变量指定一个范例,不盼望范例检查器对这些值举行检查而是直接让它们通过编译阶段的检查,这时候可以利用any范例
利用any范例允许被赋值为恣意范例,甚至可以调用其属性、方法
  1. let num:any = 123;
  2. num = 'str';
  3. num = true;
复制代码
定义存储各种范例数据的数组时,示例代码如下:
  1. let arrayList: any[] = [1, false, 'fine'];
  2. arrayList[1] = 100;
复制代码
null 和 和 undefined

在 JavaScript 中 null 表示 “什么都没有”,是一个只有一个值的特殊范例,表示一个空对象引用,而undefined表示一个没有设置值的变量
默认环境下null和undefined是全部范例的子范例, 就是说你可以把 null 和 undefined 赋值给 number 范例的变量
  1. let num:number | undefined; // 数值类型 或者 undefined
  2. console.log(num); // 正确
  3. num = 123;
  4. console.log(num); // 正确
复制代码
但是ts设置了--strictNullChecks标记,null和undefined只能赋值给void和它们各自
void

用于标识方法返回值的范例,表示该方法没有返回值。
  1. function hello(): void {
  2.     alert("Hello Runoob");
  3. }
复制代码
never

never是其他范例 (包括null和 undefined)的子范例,可以赋值给任何范例,代表从不会出现的值
但是没有范例是 never 的子范例,这意味着声明 never 的变量只能被 never 范例所赋值。
never 范例一般用来指定那些总是会抛出非常、无限循环
  1. let a:never;
  2. a = 123; // 错误的写法
  3. a = (() => { // 正确的写法
  4.   throw new Error('错误');
  5. })()
  6. // 返回never的函数必须存在无法达到的终点
  7. function error(message: string): never {
  8.     throw new Error(message);
  9. }
复制代码
object

对象范例,非原始范例,常见的情势通过{}举行包裹
  1. let obj:object;
  2. obj = {name: 'Wang', age: 25};
复制代码
三、总结

和javascript基本同等,也分成:


  • 基本范例
  • 引用范例
在底子范例上,typescript增长了void、any、emum等原始范例

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表