前端经典面试题合集, TypeScript 的内置数据类型有哪些?
前端经典面试题合集, TypeScript 的内置数据类型有哪些?
QA
Step 1
Q:: TypeScript 的内置数据类型有哪些?
A:: TypeScript 提供了多种内置数据类型,包括:
1.
基础类型:
-
boolean
:表示真值或假值,取值 true
或 false
。
-
number
:表示数值类型,包括整数和浮点数。
-
string
:表示字符串类型。
-
void
:表示没有任何类型,一般用于函数没有返回值的情况。
-
null
和 undefined
:分别表示空值和未定义。
-
symbol
:表示唯一的不可变的值。
2.
数组类型:用 T[]
或 Array<T>
表示。
3.
元组类型:表示一个已知元素数量和类型的数组。
4.
枚举类型:用 enum
关键字定义。
5.
any 类型:表示任意类型,一般用于兼容 JavaScript 代码。
6.
unknown 类型:表示未知类型,与 any
类似但更安全。
7.
never 类型:表示永远不会有值的类型,例如函数抛出异常或无限循环。
8.
object 类型:表示非原始类型的对象。
9.
联合类型 和 交叉类型:用来组合多个类型。
Step 2
Q:: 什么是 TypeScript 中的类型推断?
A:: 类型推断是 TypeScript 的一种自动推导变量类型的机制。当我们声明一个变量并赋值时,TypeScript 会根据赋的值自动推断出变量的类型。例如,let num = 42;
中,TypeScript 会推断 num
的类型为 number
。类型推断减少了显式声明类型的需要,提升了代码的简洁性和可读性。
Step 3
Q:: TypeScript 中的接口(interface)有什么用?
A:: 接口用于定义对象的类型结构。它规定了对象的属性和方法的类型,可以在编译时对代码进行类型检查。例如:
interface Person {
name: string;
age: number;
}
const john: Person = { name: 'John', age: 30 };
接口可以用于类型检查,确保对象符合特定的结构。此外,接口还支持继承、可选属性、只读属性等特性,增强了代码的灵活性和可维护性。
Step 4
Q:: TypeScript 中的泛型(Generics)是什么?
A:: 泛型是一种使得函数、类和接口可以处理不特定类型的方式。在定义时使用泛型,能够在使用时指定具体的类型,从而提高代码的复用性和类型安全。例如:
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>('hello');
这里,函数 identity
使用了泛型 T
,可以处理任何类型的参数,调用时指定具体类型 string
。