关于TypeScript---面试题【更新中】

TypeScript面试题

TypeScript是什么,特性有哪些

TypeScript是一种由微软开发的开源编程语言,它是JavaScript的超集,为JavaScript添加了静态类型、类、接口等特性。TypeScript通过提供更严格的类型检查和辅助工具来提高代码的可读性、可维护性和可扩展性,同时也降低了项目中出现的潜在错误。

TypeScript的主要特性包括:
类型批注和编译时类型检查 :在编译时批注变量类型
类型推断:ts 中没有批注变量类型会自动推断变量的类型
类型擦除:在编译过程中批注的内容和接口会在运行时利用工具擦除
接口:ts 中用接口来定义对象类型
枚举:用于取值被限定在一定范围内的场景
Mixin:可以接受任意类型的值
泛型编程:写代码时使用一些以后才指定的类型
名字空间:名字只在该区域内有效,其他区域可重复使用该名字而不冲突
元组:元组合并了不同类型的对象,相当于一个可以装不同类型数据的数组

类型系统:TypeScript支持静态类型检查,可以帮助开发者在编译时捕获类型错误,避免在运行时出现类型相关的错误。

类和接口:TypeScript支持面向对象编程,可以使用类和接口来定义对象和类型,并实现封装、继承和多态等概念。

泛型:TypeScript支持泛型,可以让开发者编写更加通用和灵活的代码。

编译时类型检查:TypeScript可以在编译时对代码进行类型检查,减少代码中出现的潜在错误。

工具支持:TypeScript提供了丰富的辅助工具,如代码自动补全、重构、调试等,提高了开发效率。

总之,TypeScript是一个功能强大、灵活、易于学习和使用的编程语言,为JavaScript开发带来了更好的类型检查和面向对象编程的支持,可以提高代码的质量和可维护性。

TypeScript与JavaScript的区别

TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法
TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译
TypeScript 文件的后缀名 .ts (.ts,.tsx,.dts),JavaScript 文件是 .js
在编写 TypeScript 的文件的时候就会自动编译成 js 文件
例图:
在这里插入图片描述

TypeScript的数据类型都有那些?

typescript 的数据类型主要有如下:

boolean(布尔类型)
number(数字类型)
string(字符串类型)
array(数组类型)
tuple(元组类型)
enum(枚举类型)
any(任意类型)
null 和 undefined 类型
void 类型
never 类型
object 对象类型
#boolean

布尔类型

在这里插入图片描述

number

数字类型,和javascript一样,typescript的数值类型都是浮点数,可支持二进制、八进制、十进制和十六进制
在这里插入图片描述

进制表示:

在这里插入图片描述

string

字符串类型,和JavaScript一样,可以使用双引号(")或单引号(')表示字符串

在这里插入图片描述

作为超集,当然也可以使用模版字符串``进行包裹,通过 ${} 嵌入变量
在这里插入图片描述

array

数组类型,跟javascript一致,通过[]进行包裹,有两种写法:

方式一:元素类型后面接上 []
在这里插入图片描述

方式二:使用数组泛型,Array<元素类型>:
在这里插入图片描述

tuple

元祖类型,允许表示一个已知元素数量和类型的数组,各元素的类型不必相同
在这里插入图片描述

赋值的类型、位置、个数需要和定义(生明)的类型、位置、个数一致

enum

enum类型是对JavaScript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字
在这里插入图片描述

any

可以指定任何类型的值,在编程阶段还不清楚类型的变量指定一个类型,不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查,这时候可以使用any类型

使用any类型允许被赋值为任意类型,甚至可以调用其属性、方法
在这里插入图片描述

定义存储各种类型数据的数组时,示例代码如下:
在这里插入图片描述

null 和 undefined

在JavaScript 中 null表示 “什么都没有”,是一个只有一个值的特殊类型,表示一个空对象引用,而undefined表示一个没有设置值的变量

默认情况下null和undefined是所有类型的子类型, 就是说你可以把 null和 undefined赋值给 number类型的变量

在这里插入图片描述

但是ts配置了–strictNullChecks标记,null和undefined只能赋值给void和它们各自

void

用于标识方法返回值的类型,表示该方法没有返回值。
在这里插入图片描述

never

never是其他类型 (包括null和 undefined)的子类型,可以赋值给任何类型,代表从不会出现的值

但是没有类型是 never 的子类型,这意味着声明 never 的变量只能被 never 类型所赋值。

never 类型一般用来指定那些总是会抛出异常、无限循环
在这里插入图片描述

object

对象类型,非原始类型,常见的形式通过{}进行包裹
在这里插入图片描述

类型小结

分为两个类型:1.基本类型 2.引用类型
在基础类型上,TypeScript增添了void、any、emum等原始数据

TypeScript中枚举类型的理解?应用场景?

枚举是一个被命名的整型常数的集合,用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型

通俗来说,枚举就是一个对象的所有可能取值的集合

在日常生活中也很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就可以看成是一个枚举
枚举形式:如图所示:
在这里插入图片描述

枚举类型的使用

枚举的使用是通过enum关键字进行定义,如下:
在这里插入图片描述
声明关键字为枚举类型的方式,如下:
在这里插入图片描述

枚举分类

类型可以分为三种
1.数字枚举 2.字符串枚举 3.异构枚举

数字枚举

假如我们声明一个枚举类型是,虽然没有给它们赋值,但是它们的值其实是默认的数字类型,而且默认从0开始依次累加:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No DeBug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值