当前位置: 首页 > news >正文

TypeScript 快速实战系列:基础入门|TypeScript 核心语法 1 小时吃透(必备基础)

🔥 导读:上一篇我们搞定了TS环境搭建,也搞懂了为什么大模型开发必须学TS。今天这篇,不搞复杂理论,只讲大模型开发中「最常用、最核心」的TS语法——基础类型+类型注解,1小时就能吃透,学完就能给大模型API参数、返回值做类型定义,彻底告别“参数传错”的坑!

适合人群:零基础、前端/AI开发新手,全程实战,每一行代码都能直接复制运行,结合大模型场景讲解,不学没用的语法。

一、先搞懂:TS与JS的核心区别(一句话说透)

很多人分不清TS和JS的关系,其实很简单:

TypeScript = JavaScript + 类型系统

也就是说,所有JS代码都是合法的TS代码,但TS多了“类型约束”——你可以给变量、函数参数、返回值定义“类型”,告诉TS这个值应该是什么样子,写错了就会直接报错。

举个大模型开发中的例子:

// JS代码:没有类型约束,传错类型也不报错(运行时才崩)

const temperature = "0.7"; // 应该是数字,却传了字符串

// TS代码:有类型约束,传错类型直接报错(写代码时就提醒)

const temperature: number = "0.7"; // 报错:类型“string”不能赋值给类型“number”

这就是TS的核心价值——提前规避错误,尤其在大模型API调用中,参数类型繁多,有了类型约束,能少踩很多坑。

二、大模型开发最常用的5种基础类型(必记)

TS的基础类型有很多,但大模型开发中,常用的只有5种,记住它们,就能搞定80%的基础场景,不用记所有类型!

1. 字符串类型(string)

用途:大模型API密钥(apiKey)、模型名称(model)、对话内容(content)、请求地址(url)等,都是字符串类型。

// 语法:变量名: 类型 = 值

const apiKey: string = "sk-xxxxxxxxxxxxxxxx"; // 大模型API密钥

const model: string = "qwen-max"; // 通义千问模型名称

const userContent: string = "用TS写一个大模型调用函数"; // 用户对话内容

2. 数字类型(number)

用途:大模型的temperature(温度,0~2)、max_tokens(最大生成 tokens 数)、top_p等参数,都是数字类型。

const temperature: number = 0.7; // 控制生成内容的随机性

const maxTokens: number = 1000; // 最大生成 tokens 数

const topP: number = 0.9; // 控制生成内容的多样性

3. 布尔类型(boolean)

用途:大模型的stream(流式输出,true/false)、是否开启调试模式等,都是布尔类型。

const stream: boolean = true; // 开启流式输出(打字机效果)

const debug: boolean = false; // 关闭调试模式

4. 任意类型(any)

用途:临时不确定类型的值(比如大模型返回的复杂数据,暂时不知道结构),但尽量少用——用多了就失去了TS的类型约束意义,是大模型开发中最容易踩的坑。

// 临时使用,尽量避免

let llmResponse: any = {}; // 暂时不知道返回结构,先用any

⚠️ 避坑提醒:如果长期用any定义大模型返回值,就等于放弃了TS的智能提示和类型校验,和用JS没区别,后续会踩更多坑。

5. 未知类型(unknown)

用途:替代any的“安全版本”,当你不确定类型时,用unknown比any更安全——unknown类型的值,不能直接使用,必须先判断类型,才能操作。

let llmResponse: unknown = "hello world";

// 不能直接使用,必须先判断类型

if (typeof llmResponse === "string") {

console.log(llmResponse.length); // 此时确定是string类型,才能调用length

}

大模型开发中,接收API返回值时,用unknown比any更安全,避免误操作。

三、核心语法:类型注解(大模型开发必用)

类型注解就是“给变量、函数参数、返回值贴标签”,告诉TS它们的类型,语法非常简单:标识符: 类型

下面结合大模型开发场景,讲解3种最常用的类型注解,学完就能直接用。

1. 变量的类型注解(最基础)

就是给变量定义类型,前面讲基础类型时已经用过了,再汇总一个大模型场景的示例:

// 大模型请求相关变量的类型注解 const apiKey: string = "sk-xxxxxxx"; const model: string = "gpt-3.5-turbo"; const temperature: number = 0.7; const stream: boolean = true; const baseUrl: string = "https://api.openai.com/v1/chat/completions";

这样定义后,只要给这些变量赋值错误的类型,TS就会直接报错,提前规避问题。

2. 函数参数的类型注解

大模型开发中,我们会写很多调用API的函数,给函数参数加类型注解,能避免传错参数类型。

// 示例:定义一个大模型请求参数的函数 function getLlmParams( model: string, // 模型名称:字符串类型 temperature: number, // 温度:数字类型 stream: boolean // 流式输出:布尔类型 ) { return { model, temperature, stream, messages: [], // 后续会讲,暂时空数组 }; } // 正确调用:参数类型匹配 getLlmParams("qwen-max", 0.7, true); // 错误调用:temperature传了字符串,直接报错 getLlmParams("qwen-max", "0.7", true); // 报错:类型“string”不能赋值给类型“number”

3. 函数返回值的类型注解

给函数返回值加类型注解,能明确函数返回的是什么类型,方便后续使用,也能避免函数返回错误的值。

// 定义函数返回值类型:对象类型(后续会详细讲,这里先了解) function getLlmParams( model: string, temperature: number, stream: boolean ): { model: string; temperature: number; stream: boolean; messages: [] } { return { model, temperature, stream, messages: [], }; } // 调用函数,能明确知道返回的结构和类型 const params = getLlmParams("qwen-max", 0.7, true); console.log(params.model); // 智能提示:model是string类型

四、实战小任务:定义一个「大模型请求配置」类型变量

学完上面的内容,我们来做一个实战小任务,直接贴合大模型开发场景,巩固今天的知识点——定义一个完整的大模型请求配置变量,包含所有常用参数。

// 实战:定义大模型请求配置 const llmConfig: { apiKey: string; model: string; temperature: number; stream: boolean; maxTokens: number; baseUrl: string; } = { apiKey: "sk-xxxxxxxxxxxxxxxx", model: "gpt-3.5-turbo", temperature: 0.7, stream: true, maxTokens: 1000, baseUrl: "https://api.openai.com/v1/chat/completions", }; // 打印配置,验证是否正确 console.log("大模型请求配置:", llmConfig);

将这段代码复制到index.ts文件中,用ts-node index.ts运行,能正常打印配置,就说明你掌握了今天的知识点!

五、避坑指南:大模型开发中,TS最容易踩的坑

  1. 滥用any类型:这是最常见的坑,很多人觉得any方便,什么都用any,结果失去了TS的类型约束,和用JS没区别;

  2. 忽略类型报错:写代码时,TS提示类型错误,觉得“能运行就行”,强行忽略,后续会出现各种诡异的bug;

  3. 给变量赋值错误类型:比如把大模型的temperature赋值为字符串,虽然JS能运行,但TS会报错,一定要按照定义的类型赋值。

六、本篇总结+下一篇预告

✅ 核心收获:掌握了大模型开发最常用的5种基础类型,学会了变量、函数参数、返回值的类型注解,能独立定义大模型请求配置变量;

❌ 避坑提醒:少用any类型,重视TS的类型报错,养成“先定义类型,再写代码”的习惯;

📌 下一篇预告:《核心进阶|Interface + Type:大模型开发神器》,带你学会用Interface和Type定义复杂的大模型请求/返回类型,彻底解决“返回值字段找不到”的问题,直接搞定80%的LLM开发TS需求!

💡 评论区互动:今天的语法你学会了吗?试着自己写一个大模型请求配置变量,留言贴出你的代码,一起交流进步~

http://www.jsqmd.com/news/593900/

相关文章:

  • 用C++和Winsock从零搭建一个局域网聊天室(附完整代码)
  • 5分钟构建企业级多智能体系统(非常详细),阿里 AgentScope 从入门到精通,收藏这一篇就够了!
  • 2026年西安及西北全域AI搜索GEO优化3强服务商分析 - 小白条111
  • 10_Neo4j知识体系之故障排查与性能优化
  • 基于PLC饮用水源初处理控制系统设计
  • go学习笔记5(函数,结构体,自定义类型和类别名,接口)
  • Kubernetes 部署 Spring Boot 应用:从入门到生产实践
  • 基于PLC智能家居控制系统设计
  • 集成学习完全指南:从AdaBoost到随机森林,揭秘为什么一群“弱鸡”能吊打“学霸”
  • 2026年厦门美妆护肤行业GEO优化方法解析与3家实力服务商推荐 - 小白条111
  • 2026年美国移民机构排名及综合实力分析 - 品牌排行榜
  • 2026年美国移民项目推荐公司选择指南 - 品牌排行榜
  • go学习笔记4(数组与切片,map,if,switch,for循环)
  • 2026年美妆护肤行业AI搜索优化怎么做效果好?推荐3家实力口碑兼具的GEO优化服务商 - 小白条111
  • Python数据类配置模式详解
  • 计算机毕业设计:Python智析二手车数据可视化及价格预测系统 Django框架 可视化 线性回归 数据分析 机器学习 深度学习 AI 大模型(建议收藏)✅
  • 算法分析与设计
  • 拒绝“骚扰”标签:国内企业品牌来电名片服务商综合实力调研 - 企业服务推荐
  • 手把手教你用RFSoC ZU47DR的DAC/ADC:从单音信号到1200MHz宽带调制的避坑实践
  • 深度解析:Agent 如何处理“开放性目标”与“约束性规则”的冲突?
  • 2026夏天穿长裤不想热成狗?5个品牌深度实测,上班户外多功能通勤裤,帮你避开80%的坑 - 行业深度观察
  • MTKClient技术内幕:从硬件交互到场景落地的深度探索
  • 53645
  • SPM处理fMRI数据卡住了?用Python脚本+dcm2niix实现DICOM到NII的批量分拆转换
  • Rancher国内网络卡脖子?手把手教你配置私有镜像仓库(避坑RKE2 registries.yaml)
  • 算法奇妙屋(四十二)-贪心算法学习之路 9
  • go学习笔记7(泛型,文件读写,测试)
  • HFSS新手避坑指南:手把手教你调出2.45GHz的侧馈矩形微带天线
  • 实战指南:基于快马平台生成企业级cc switch管理系统,助力游戏项目开发
  • 3分钟学会iOS虚拟定位:免费开源工具iFakeLocation终极指南