一些typescript面试题

124 阅读1分钟

1.为什么要使用TypeScript?TypeScript相对于JavaScript的优势是什么?

TypeScript是JavaScript的超集,具有可选的类型并可以编译为纯JavaScript。

  • 避免经典错误 'undefined' is not a function.
  • 在不严重破坏代码的情况下,重构代码更容易。
  • 使大型、复杂的应用程序源码更易阅读。

2.TypeScript中const和readonly的区别是什么?

  1. const用于变量,readonly用于属性
  2. const在运行时检查,readonly在编译时检查
  3. 使用const变量保存的数组,可以使用push,pop等方法。但是如果使用ReadonlyArray<number>声明的数组不能使用push,pop等方法

3.TypeScript中any,never,unknown和viod有什么区别?

  1. unknown类型和any类型类似。与any类型不同的是unknown类型可以接受任意类型赋值,但是unknown类型赋值给其他类型前,必须被断言
  2. never,never表示永远不存在的类型。比如一个函数总是抛出错误,而没有返回值。或者一个函数内部有死循环,永远不会有返回值。函数的返回值就是never类型。
  3. void, 没有显示的返回值的函数返回值为void类型。如果一个变量为void类型,只能赋予undefined或者null。

4.命名空间是什么

命名空间定义了标识符的可见范围,一个标识符可在多个名字空间中定义,它在不同名字空间中的含义是互不相干的。这样,在一个新的名字空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他名字空间中。