一 我要涨知识 —— TypeScript 常见面试题( 三 )

interface 能够声明合并
interface User {name: stringage: number}interface User {sex: string}/*User 接口为 {name: stringage: numbersex: string}*/一般来说 , 如果不清楚什么时候用interface/type,能用 interface 实现 , 就用 interface , 如果不能就用 type。
8、TypeScript 的主要特点是什么?

  • 跨平台:TypeScript 编译器可以安装在任何操作系统上,包括 Windows、macOS 和 Linux 。
  • ES6 特性:TypeScript 包含计划中的 ECMAScript 2015 (ES6) 的大部分特性,例如箭头函数 。
  • 面向对象的语言:TypeScript 提供所有标准的 OOP 功能,如类、接口和模块 。
  • 静态类型检查:TypeScript 使用静态类型并帮助在编译时进行类型检查 。因此,你可以在编写代码时发现编译时错误,而无需运行脚本 。
  • 可选的静态类型:如果你习惯了 JavaScript 的动态类型,TypeScript 还允许可选的静态类型 。
  • DOM 操作:您可以使用 TypeScript 来操作 DOM 以添加或删除客户端网页元素 。
9、TypeScript 中 never 和 void 的区别
  • void 表示没有任何类型(可以被赋值为 null 和 undefined) 。
  • never 表示一个不包含值的类型,即表示永远不存在的值 。
  • 拥有 void 返回值类型的函数能正常运行 。拥有 never 返回值类型的函数无法正常返回,无法终止,或会抛出异常 。
10、说一说 TypeScript 中的类及其特性 。TypeScript 引入了类,以便它们可以利用诸如封装和抽象之类的面向对象技术的好处 。
TypeScript 编译器将 TypeScript 中的类编译为普通的 JavaScript 函数,以跨平台和浏览器工作 。
一个类包括以下内容:
  • 构造器(Constructor)
  • 属性(Properties)
  • 方法(Methods)
class Employee {empID: number;empName: string;constructor(ID: number, name: string) {this.empName = name;this.empID = ID;}getSalary(): number {return 40000;}}类的其他特性有:
  • 继承(Inheritance)
  • 封装(Encapsulation)
  • 多态(Polymorphism)
  • 抽象(Abstraction)
11、TypeScript 中的类型断言是什么?TypeScript 中的类型断言的工作方式类似于其他语言中的类型转换,但没有 C# 和 Java 等语言中可能的类型检查或数据重组 。类型断言对运行时没有影响 , 仅由编译器使用 。
类型断言本质上是类型转换的软版本,它建议编译器将变量视为某种类型 , 但如果它处于不同的形式,则不会强制它进入该模型 。
12、TypeScript 中的模块是什么?TypeScript 中的模块是相关变量、函数、类和接口的集合 。你可以将模块视为包含执行任务所需的一切的容器 。可以导入模块以轻松地在项目之间共享代码 。
module module_name{class xyz{export sum(x, y){return x+y;}}}13、解释如何使用 TypeScript 中的 mixin 。Mixin 本质上是在相反方向上工作的继承 。Mixins 允许你通过组合以前类中更简单的部分类设置来构建新类 。
相反 , 类A继承类B来获得它的功能,类B从类A需要返回一个新类的附加功能 。
14、TypeScript 中什么是装饰器,它们可以应用于什么?装饰器是一种特殊的声明 , 它允许你通过使用@注释标记来一次性修改类或类成员 。每个装饰器都必须引用一个将在运行时评估的函数 。
例如,装饰器@sealed将对应于sealed函数 。任何标有 的@sealed都将用于评估sealed函数 。
function sealed(target) {// do something with 'target' ...}它们可以附加到:
  • 类声明
  • 方法
  • 配件
  • 特性
  • 参数
注意:默认情况下不启用装饰器 。要启用它们,你必须experimentalDecorators从tsconfig.json文件或命令行编辑编译器选项中的字段 。
15、使用 ts 实现一个判断入参是否是数组类型的方法?unknown 用于变量类型不确定,但肯定可以确定的情形下 , 比如下面这个示例中,入参总归会有个值,根据这个值的类型进行不同的处理 , 这里使用 unknown 替代 any 则会更加类型安全 。
function isArray(x: unknown): boolean {if (Array.isArray(x)) {return true;}return false;}【一 我要涨知识 —— TypeScript 常见面试题】

推荐阅读