TypeScript 是一种由微软开发的静态类型语言,它建立在 JavaScript 基础上,并添加了诸如类型注释、类和接口等特性,以提高代码的可维护性和可读性。在前端开发中,TypeScript 已经成为了一种流行的开发语言。为了帮助大家备战 TypeScript 面试,我们整理了以下面试题。
1. TypeScript 中的基础类型
TypeScript 支持 JavaScript 中的基本类型以及额外的类型,如元组、枚举和任意类型等。请问下面的代码输出什么?
const num: number = 42; const str: string = "Hello"; const bool: boolean = true; console.log(typeof num, typeof str, typeof bool);
输出:
number string boolean
2. TypeScript 中的联合类型与交叉类型
TypeScript 中的联合类型和交叉类型都可以表示多种类型的组合,它们的主要区别在于处理方式不同。请问下面的代码输出什么?
-- -------------------- ---- ------- --------- - - -- ------- - --------- - - -- ------- - ---- -- - - - -- ---- ---- - - - -- ----- --- -- - --- -------- -- ---- ----- -- ---- - --- --------- --------------- ---
输出:
{ a: 'hello', b: 42 } { a: 'world' }
3. 类的定义和继承
TypeScript 中也支持类的定义和继承,与 Java 或 C# 等语言相似。请问下面的代码输出什么?
-- -------------------- ---- ------- ----- ------ - ----- ------- ----------------- ------- - --------- - ----- - -------- ---- - --------------------- - - ----- - --------- - - ----- --- ------- ------ - ----------------- ------- - ------------ - -------- ---- - --------------------- - - --------- - - ----- --- - --- ------------- ------------
输出:
Rover barks.
4. 接口的定义和实现
TypeScript 中的接口是一种类型限制,用于描述对象的形状。请问下面的代码输出什么?
-- -------------------- ---- ------- --------- ------------- - ------ ------- - -------- ----------------------- -------------- - ------------------------------- - ----- ----- - - ----- --- ------ ----- -- ------- -- ------------------
输出:
Size 10 Object
5. 泛型的使用
TypeScript 中支持泛型,即在定义时不指定具体类型,而在使用时再指定。请问下面的代码输出什么?
function identity<T>(arg: T): T { return arg; } const out = identity<string>("hello"); console.log(out);
输出:
hello
6. 以类型推断为基础的高级类型
TypeScript 中的高级类型包括交叉类型和联合类型、类型别名和字符串字面量类型等。请问下面的代码输出什么?
-- -------------------- ---- ------- ---- -------------- - ------ - ------- ---- ---- - ------ - - ----- ------ -- -------- ---------- --------------- -- ---------------- -------------- - -- ------- - --- -------- -- ------ - --- --------- - ------ ------------ - ------------- - ---- - ------ - - -- - - -------- --------------- ------ ---- - -- ------- ---- --- --------- - ------------------ - ---- - ----------------------- - - ----- - - ---------------- ---- ----- - - - ----- ------- -- ------------- -------------
输出:
hello42 world
总结
上述的 TypeScript 面试题主要涉及到了 TypeScript 中的基础类型、联合类型、交叉类型、类的定义和继承、接口的定义和实现、泛型的使用以及以类型推断为基础的高级类型。在准备 TypeScript 面试时,我们应该熟悉 TypeScript 的语法和特性,灵活运用各种类型,并且学会如何使用 TypeScript 提高代码的可维护性和可读性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645c4b08968c7c53b0e9a751