TS面试题

一、ts与js相比较有哪些优势?

    1.ts是js的超集,存在类型的脚本语言

    2.继承了js的所有编程类型,js代码可在ts环境很好的运行

    3.为构建大型应用而生,但小程序同样适用

    4.强大的类型系统,拥有静态类型检查能力

    5.新增类型注解和类型推断

    6.拥有丰富的class扩展功能

    7.添加了系统级设计能力,设计模式由顶层由下进行设计

二、TypeScript中的原始类型有哪些?

    TypeScript的原始类型包括: boolean、number、string、void、undefined、null、symbol、bigint。

三、说说数组在TypeScript中是如何工作的?

    1.第一种方式:类型 + []表示法

    2.第二种方式:接口

    3.第三种方式:any

四、什么是any类型,何时使用?

    是什么:在 TypeScript 中,任何类型的值都可以赋值给 any , any 也可以赋值给任意类型,因此,any 类型通常也被称为 top type

    何时用:

        1.添加类型时,我必须编写大量代码,any 工作量较少

        2. 我已经通过必要的运行时检查以防御性的方式编写了代码,以确保没有错误

        3. 有些参数很难正确输入,但是 any 更容易

        4. 我真的不知道参数是什么

        5. 类型增加了很多复杂性,有时 any 更简单

五、什么是void,什么时候使用void类型?

    void 表示变量没有类型,它充当与任何相反的类型,它在不返回值的函数中特别有用

    如果变量是 void 类型,则只能将 null 或 undefined 值分配给该变量。

六、TypeScript中声明变量有哪些不同的关键字?

    TypeScript 是 JavaScript 的超集,同 JavaScript 一样,声明变量可以采用下面三个关键字:

        1.var

        2.let

        3.const

      除此之外还有:

        1.type

        2.interface

        3.enum

七、类型别名和interface区别是什么?

    1.类型别名可以用于其它类型 (联合类型、元组类型、基本类型(原始值)),interface不支持

    2.interface 可以多次定义 并被视为合并所有声明成员 type 不支持

    3.type 能使用 in 关键字生成映射类型,但 interface 不行。

    4.默认导出方式不同 interface 支持同时声明,默认导出 而type必须先声明后导出

八、谈谈你对泛型的认识

    1.泛型只存在于编译期间

    2.泛型在语法中的特征就是尖括号

    3.泛型的核心原理:利用Object引用可以指向任意类型的对象

九、ts中class类有哪些属性?

    1.修饰符

        1.默认公共 public 自由访问程序里定义的变量和方法

        2.私有的 private 当成员被标记为私有属性,只能在类进行使用,不能外部使用,子类也不可访问

        3.受保护的 protected 和private相似,唯一不同的是,被protected修饰的属性可以在子类中访问

    2.readOnly 只读

        只读属性必须在声明或构造函数时被初始化

    3.抽象类

        1.抽象类作为其他派生类的基类使用,一般不会被实例化。与接口不同的是抽象类中可以包括具体实现细节;

        2.abstract关键字用于定义抽象类以及在抽象类内部定义抽象方法

    4.接口继承类

        可以把类当成接口使用,因为类可以创建出类型

你可能感兴趣的:(面试题,TS,javascript,typescript,开发语言)