Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 第2章:基础类型与变量

第2章:基础类型与变量

类型注解与类型推断

1. 类型注解(Type Annotations)

类型注解是显式地为变量、函数参数或返回值指定类型的方式,语法为 : Type。
示例:

let age: number = 25;          // 显式声明 age 为 number 类型
function greet(name: string): string {
    return `Hello, ${name}`;   // 参数和返回值均标注类型
}

作用:

  • 提高代码可读性,明确预期类型。
  • 在编译阶段捕获类型错误(如传递错误类型的参数)。

2. 类型推断(Type Inference)

TypeScript 能根据上下文自动推断变量的类型,无需显式注解。
示例:

let score = 100;               // 推断为 number 类型
const message = "Hello";       // 推断为 string 类型
const isActive = true;         // 推断为 boolean 类型

推断规则:

  • 初始化变量:根据赋值表达式推断类型。
  • 函数返回值:根据 return 语句推断返回类型。
  • 最佳通用类型:数组或联合类型时会选择最兼容的类型。

3. 何时使用类型注解?

虽然类型推断能减少代码量,但在以下场景建议显式注解:

  1. 未初始化的变量:
    let data: string[]; // 明确声明为字符串数组
    data = ["A", "B"];  // 后续赋值需匹配类型
    
  2. 函数复杂返回值:
    function parseInput(input: string): number | boolean {
        if (input === "true") return true;
        return parseInt(input);
    }
    
  3. 避免 any 推断:当第三方库未提供类型时,手动标注更安全。

4. 类型推断的局限性

  • 字面量类型窄化:

    const direction = "north"; // 推断为字面量类型 "north",而非 string
    

    若需扩展为更宽泛的类型,需显式注解:

    let direction: string = "north";
    
  • 动态内容:从 API 返回的数据可能无法准确推断,此时需结合接口或类型断言。


5. 实践建议

  • 优先依赖推断:减少冗余代码,保持简洁。
  • 关键位置显式注解:如公共函数签名或复杂数据结构。
  • 结合工具检查:通过 VS Code 悬停查看推断结果,确保符合预期。
Last Updated:: 3/27/25, 10:50 AM