TS面试题

337 阅读3分钟

TypeScript的主要特点是什么?

  1. 跨平台:TypeScript 编译器可以安装在任何操作系统上,包括 Windows、macOS 和 Linux。

  2. ES6 特性:TypeScript 包含计划中的 ECMAScript 2015 (ES6) 的大部分特性,例如箭头函数。

  3. 面向对象的语言:TypeScript 提供所有标准的 OOP 功能,如类、接口和模块。

  4. 静态类型检查:TypeScript 使用静态类型并帮助在编译时进行类型检查。因此,你可以在编写代码时发现编译时错误,而无需运行脚本。

  5. 可选的静态类型:如果你习惯了 JavaScript 的动态类型,TypeScript 还允许可选的静态类型。

  6. DOM 操作:您可以使用 TypeScript 来操作 DOM 以添加或删除客户端网页元素。

使用 TypeScript 有什么好处?

  • TypeScript 更具表现力,这意味着它的语法混乱更少。

  • 由于高级调试器专注于在编译时之前捕获逻辑错误,因此调试很容易。

  • 静态类型使 TypeScript 比 JavaScript 的动态类型更易于阅读和结构化。

  • 由于通用的转译,它可以跨平台使用,在客户端和服务器端项目中

TypeScript 和 JavaScript 的区别是什么?

  • TS 是一种面向对象编程语言,而 JS 是一种脚本语言(尽管 JS 是基于对象的)。

  • TS 支持可选参数, JS 则不支持该特性。

  • TS 支持静态类型,JS 不支持。

  • TS 支持接口,JS 不支持接口。

类型推论

TS中,没有明确指出类型的地方,类型推论会帮助提供类型。

接口

个人理解:声明对象的模板

interface person {
    name: string,
    money: number,
    like: boolean,
    hobby: string[],
    make: () => void,
}
//实现接口 
let zs: person = {
    name: "张三",
    money: 100,
    like: true,
    hobby: ["打篮球", "踢足球"],
    make: () => { 
    
        },
    }
}

接口通过extends来实现继承

一个接口可以被多个接口继承,同样,一个接口也可以继承多个接口,多个接口用逗号隔开

泛型

定义

泛型是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。

为什么选择使用泛型而不是any?

使用any类型会导致这个函数可以传入,返回任何类型的参数,使用泛型保证传入的类型与返回的类型是相同的。

元组

允许存储不同类型的元素的数组

枚举

将数据与数字相对应,便于拿数据

// js中的类
 class Parent {
        constructor(x) {
            this.x = x;
            this.sayHello = function () {
                console.log("sayHello")
            }
        }
      fn(){
        console.log(this.name)
      }
    }
new Parent()
//ts中的类:传值必须定义类型和值
class Person {
    //注意构造函数要用到的属性需要提前定义
    name:string;//非静态变量 成员变量
    age:number
  	static like:string="money"; //静态变量 类变量
    readonly sex:string //只读的成员变量,实例化之后不能改
  //定义变量
    constructor(name:string,age:number){
        this.name=name;
        this.age=age;
        this.sex=sex;
    }
    //定义方法
    //类中的所有方法都默认定义在原型上的
    eat(){
      
    }
let xm =new Person("小明",18,"boy");
console.log(xm)

ts为类中的变量提前限定了类型,增加了访问修饰符