TypeScript 面试问题

TypeScript 面试宝典:核心概念与实用技巧

本文涵盖了typescript的核心概念和实用技巧,旨在帮助你更好地应对typescript面试。

TypeScript 面试问题

一、TypeScript概述

TypeScript是JavaScript的超集,它添加了静态类型系统,从而提升代码质量,并在运行前发现错误。它支持接口、枚举、泛型等特性,增强了代码的可读性和可维护性。

二、类型赋值

显式类型赋值: 直接指定变量的类型,例如:let firstName: string = “rutvik”;

隐式类型赋值: TypeScript根据值推断类型,例如:let age = 23; (会被推断为number)

三、any、unknown和never类型比较

any: 可以赋值任何类型的值,类型检查器会忽略对any类型变量的操作。 例如:let x: any = 10; x = ‘hello’;

unknown: 比any更安全,赋值任何类型的值,但使用前必须进行类型检查。例如:let y: unknown = 10; if (typeof y === ‘number’) { console.log(y.toFixed(2)); }

never: 表示永不发生的值,通常用于抛出错误或永不返回的函数。例如:function throwError(message: string): never { throw new Error(message); }

四、数组类型

使用[]指定数组元素类型,例如:const names: string[] = [“rutvik”, “rohit”, “virat”];

readonly关键字可以创建只读数组,防止修改数组元素。例如:const names: readonly string[] = [“rutvik”, “rohit”, “virat”];

五、数组类型推断

如果未显式指定类型,TypeScript会根据数组元素自动推断类型。例如:const numbers = [1, 2, 3]; (会被推断为number[])

六、元组 (Tuple)

元组是具有预定义长度和类型的数组。例如:let ourTuple: [number, boolean, string] = [5, false, ‘coding hero’];

七、只读元组

使用readonly关键字可以创建只读元组,防止修改元组元素。例如:let ourTuple: readonly [number, boolean, string] = [5, false, ‘coding hero’];

八、对象类型

使用接口或类型别名定义对象类型。

接口: interface CarTypes { brand: string; model: string; year: number; }

类型别名: type CarTypes = { brand: string; model: string; year: number; };

九、可选属性

在属性名后添加?表示可选属性。例如:interface CarTypes { brand: string; model: string; year?: number; }

十、枚举 (Enum)

枚举定义一组命名常量。

数字枚举:enum Direction { Up, Down, Left, Right }

字符串枚举:enum Direction { Up = “up”, Down = “down”, Left = “left”, Right = “right” }

十一、类型别名

类型别名允许为现有类型创建别名。例如:type StringOrNumber = string | number;

十二、接口 (Interface)

接口主要用于定义对象的形状。

十三、接口扩展

使用extends关键字扩展接口。例如:interface ColorSquare extends Square { color: string; }

十四、联合类型与交叉类型

联合类型: 表示变量可以是多种类型中的一种。例如:let id: string | number;

交叉类型: 表示变量必须同时满足多种类型。例如:type Worker = Person & Employee;

十五、函数类型

指定参数类型和返回值类型。例如:function add(a: number, b: number): number { return a + b; }

可选参数、默认参数和剩余参数:

可选参数:function subtract(a: number, b: number, c?: number): number { … }默认参数:function multiply(a: number, b: number = 10): number { … }剩余参数:function add(a: number, b: number, …rest: number[]): number { … }

十六、类型断言

类型断言用于告诉编译器变量的实际类型。例如:let y: unknown = ‘welcome’; console.log((y as string).length); 或 console.log((y).length);

十七、泛型

泛型允许编写可重用组件,适用于多种类型。例如:function identity(arg: T): T { return arg; }

十八、实用程序类型

TypeScript提供了一些实用程序类型,例如Partial、Required、Readonly、Pick、Omit、Record、Exclude、Extract、NonNullable、ReturnType、InstanceType、Parameters等,用于简化类型操作。 (文中已详细描述)

希望以上内容能够帮助你更好地理解TypeScript,并在面试中取得好成绩。 记住,实践是关键,多编写TypeScript代码,才能更好地掌握这些知识点。

以上就是TypeScript 面试问题的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2643640.html

(0)
上一篇 2025年3月7日 07:05:27
下一篇 2025年3月1日 00:41:49

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论