TypeScript基础概念,面试必备

TypeScript 是一种静态类型检查的编程语言,它是 JavaScript 的超集,意味着任何合法的 JavaScript 代码也是合法的 TypeScript 代码。TypeScript 添加了类型系统和其他特性,使得开发者可以在编译时发现错误,并更好地管理大型应用。下面是几个可能出现在 TypeScript 面试中的问题及解答:

1. 什么是 TypeScript?

TypeScript 是由微软开发的一种开源编程语言,它扩展了 JavaScript,增加了静态类型检查和面向对象编程的功能。

2. TypeScript 和 JavaScript 有什么区别?

  • TypeScript 是 JavaScript 的超集,具有静态类型系统。
  • TypeScript 支持类、接口、泛型等面向对象的概念。
  • TypeScript 编写的代码会被编译成 JavaScript,然后在浏览器或 Node.js 中运行。
  • TypeScript 代码在编译时进行类型检查,帮助早期发现问题。

3. 如何定义一个类型别名?

类型别名使用 type 关键字来定义:

type UserId = string;
let id: UserId = "123";

4. 如何定义一个接口?

接口(Interface)用于描述对象的形状:

interface Person {
  name: string;
  age?: number; // 可选属性
  [propName: string]: any; // 任意属性
}

let tom: Person = { name: "Tom", age: 25 };

5. 什么是泛型?

泛型允许创建可重用的组件,这些组件可以与不同的数据类型一起工作而不牺牲类型安全性。例如:

function identity<T>(arg: T): T {
  return arg;
}

let output = identity<string>("hello");

6. 如何使用模块?

模块用于组织代码,防止命名冲突:

// module1.ts
export function add(a: number, b: number) {
  return a + b;
}

// main.ts
import { add } from './module1';
console.log(add(1, 2));

7. 什么是命名空间?

命名空间是另一种组织代码的方式,主要用于与全局命名空间共享代码:

namespace Drawing {
  export class Point {
    x: number;
    y: number;
  }

  export class Line {
    pointA: Point;
    pointB: Point;
  }
}

let p1 = new Drawing.Point();
p1.x = 10;
p1.y = 20;

8. 如何使用装饰器?

装饰器是一种特殊类型的声明,可以修改类的行为:

function configurable(configurable: boolean) {
  return function(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
    descriptor.configurable = configurable;
  }
}

class Example {
  @configurable(false)
  name = 'TypeScript';
}

9. 什么是联合类型?

联合类型允许一个变量具有几种类型中的任意一种:

function printId(id: number | string) {
  console.log(id);
}

printId(10); // OK
printId("20"); // OK

10. 如何定义枚举?

枚举类型提供了一种定义一组命名的常量的方法:

enum Color { Red, Green, Blue }
let c: Color = Color.Green;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值