MST

星途 面试题库

面试题:TypeScript 中变量声明的类型推断与显式类型声明

请举例说明 TypeScript 中变量声明时类型推断的规则,并解释在哪些情况下需要使用显式类型声明而不是依赖类型推断,同时给出相应代码示例。
39.7万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

类型推断规则举例

  1. 初始化时推断:当变量在声明时被初始化,TypeScript 会根据初始化值推断其类型。
let num = 10; // num 被推断为 number 类型
let str = 'hello'; // str 被推断为 string 类型
let arr = [1, 2, 3]; // arr 被推断为 number[] 类型
  1. 函数返回值推断:函数的返回值类型会根据 return 语句返回的值推断。
function add(a, b) {
    return a + b;
}
// 这里 add 函数返回值被推断为 number 类型(假设 a 和 b 是数字类型)

需要显式类型声明的情况及示例

  1. 变量声明未初始化:当变量声明时没有初始化,TypeScript 无法推断类型,需要显式声明。
let value: number;
// 如果不显式声明,value 的类型是 any,这可能导致运行时错误
  1. 函数参数类型不明确:当函数参数类型可能有多种,且需要明确类型约束时。
function printLength(str: string) {
    console.log(str.length);
}
// 如果不声明 str 为 string 类型,传入非字符串值时可能导致运行时错误
  1. 复杂类型推断不准确:对于复杂的数据结构,类型推断可能不准确,需要显式声明。
let obj: { name: string, age: number };
obj = { name: 'John', age: 30 };
// 如果不显式声明 obj 的类型,TypeScript 可能无法准确推断其结构