韩国最牛的设计网站大全多语言版本网站

张小明 2025/12/27 19:09:20
韩国最牛的设计网站大全,多语言版本网站,网站开发展示,河源网站搭建费用一、基础类型#xff08;必掌握#xff09; 1. 原生基础类型类型说明示例代码string字符串let name: string 张三;number数字#xff08;整数/浮点数#xff09;let age: number 25; const pi 3.14;boolean布尔值let isDone: boolean true;null空值let n: …一、基础类型必掌握1. 原生基础类型类型说明示例代码string字符串let name: string 张三;number数字整数/浮点数let age: number 25; const pi 3.14;boolean布尔值let isDone: boolean true;null空值let n: null null;undefined未定义let u: undefined undefined;symbol唯一值ES6const id: symbol Symbol(id);bigint大整数ES11let bigNum: bigint 100n;2. TS 新增基础类型类型说明示例代码any任意类型关闭类型校验少用let val: any 123; val abc;unknown安全版 any需类型守卫let unk: unknown hi; if (typeof unk string) unk.length;void无返回值函数用function log(): void { console.log(日志); }never永无返回值报错/无限循环function throwErr(): never { throw new Error(错了); }3. 数组类型3种写法// 1. 类型[]最常用letnumArr:number[][1,2,3];// 2. Array类型泛型letstrArr:Arraystring[a,b,c];// 3. 联合类型数组letmixArr:(number|string)[][1,a];4. 元组类型固定长度类型// 声明[类型1, 类型2, ...]letuser:[string,number][张三,25];let[userName,userAge]user;// 解构赋值类型自动匹配二、进阶类型项目核心1. 联合类型|多类型选其一typeStatussuccess|error|loading;// 字面量联合常用letstatus:Statussuccess;// 类型守卫避免调用方法报错functionformat(val:number|string){if(typeofvalstring)returnval.toUpperCase();returnval.toFixed(2);}2. 交叉类型合并多类型typePerson{name:string;age:number};typeJob{job:string;salary:number};typePersonWithJobPersonJob;// 同时拥有两个类型的属性constuser:PersonWithJob{name:张三,age:25,job:前端,salary:20000};3. 类型别名type复用类型// 基础类型复用typeStrstring;// 复杂类型复用typeUser{id:number;name:string;age?:number;// 可选属性readonlyphone:string;// 只读属性};// 函数类型复用typeFn(a:number,b:number)number;constadd:Fn(x,y)xy;4. 接口interface描述结构继承// 基础接口interfacePerson{name:string;age?:number;// 可选属性[key:string]:any;// 任意属性}// 接口继承核心优势interfaceStudentextendsPerson{studentId:number;study():void;// 方法声明}conststudent:Student{name:李四,studentId:1001,study(){}};5.type vs interface核心区别维度typeinterface核心用途任意类型别名基础/联合/交叉对象/类结构描述侧重继承继承用交叉类型支持extends继承重复定义报错不支持合并自动合并属性独有支持类型所有类型主要支持对象/类/函数6. 函数类型约束参数返回值// 1. 直接声明functionadd(a:number,b:number):number{returnab;}// 2. 可选参数放必选后functiongreet(name:string,age?:number){}// 3. 默认参数functionfn(a:number10,b:number){}// 4. 剩余参数functionsum(...nums:number[]):number{returnnums.reduce((a,b)ab,0);}7. 泛型T动态类型复用1基础泛型函数// T 泛型参数动态接收类型functionidentityT(val:T):T{returnval;}// 调用自动推导类型conststridentity(abc);// string 类型constnumidentitynumber(123);// 显式指定类型2泛型约束extends限制范围interfaceHasLength{length:number;}// T 必须包含 length 属性functiongetLengthTextendsHasLength(val:T):number{returnval.length;}getLength(abc);// 合法字符串有 length3泛型接口/类型别名// 泛型类型别名通用对象typeObjT{[key:string]:T};constnumObj:Objnumber{a:1,b:2};// 泛型接口通用函数interfaceFnT,U{(param:T):U;}constnumToStr:Fnnumber,string(num)num.toString();三、核心工具类型直接复用1. 映射类型基于已有类型生成新类型工具类型作用示例基于type User { id: number; name: string }PartialT所有属性改为可选PartialUser→ { id?: number; name?: string }RequiredT所有属性改为必选RequiredPartialUser→ 还原 User 类型ReadonlyT所有属性改为只读ReadonlyUser→ { readonly id: number; … }PickT, K挑选 T 中 K 属性PickUser, id→ { id: number }OmitT, K排除 T 中 K 属性OmitUser, name→ { id: number }RecordK, T生成键 K、值 T 的对象类型Recordstring, User→ { [key: string]: User }2. 泛型工具类型类型提取/转换工具类型作用示例ExcludeT, U从 T 排除能赋值给 U 的类型Exclude“a”ExtractT, U从 T 提取能赋值给 U 的类型Extract“a”ReturnTypeT提取函数返回值类型ReturnType()number→ numberConstructorParametersT提取构造函数参数类型ConstructorParametersDateConstructor→ [number四、类型守卫缩小类型范围1. 常用类型守卫方式方式适用场景示例代码typeof基础类型string/number等if (typeof val string) {}instanceof引用类型数组/类实例if (val instanceof Array) {}in对象是否含某个属性if (name in val) {}自定义类型守卫复杂类型判断function isUser(val: any): val is User { return id in val; }2. 高级类型收窄// 真值收窄排除 falsy 值functionprint(msg:string|null){if(msg)console.log(msg.length);// msg 收窄为 string}// 相等收窄 判断typeDirup|down;functionmove(dir:Dir){if(dirup){}// dir 收窄为 up}五、枚举enum命名常量集合1. 数字枚举支持自增反向映射enumStatusCode{Success200,// 初始值Error400,Loading// 自增 401}console.log(StatusCode.Success);// 200console.log(StatusCode[200]);// Success反向映射2. 字符串枚举无自增无反向映射enumUserStatus{Active已激活,Frozen已冻结}constuser{status:UserStatus.Active};// 语义清晰避免魔法值六、类与 TS面向对象类型约束1. 类的基础类型classPerson{// 属性类型声明name:string;readonlygender:string;// 只读属性// 构造函数constructor(name:string,gender:string){this.namename;this.gendergender;}// 方法类型sayHello():string{returnHello${this.name};}}2. 访问修饰符权限控制修饰符访问范围类内/子类/外部示例public全范围默认public name: string;private仅类内private age: number;protected类内子类protected job: string;3. 抽象类abstract不能实例化abstractclassAnimal{abstractmakeSound():void;// 抽象方法子类必须实现eat(){console.log(吃东西);}// 普通方法}classDogextendsAnimal{makeSound(){console.log(汪汪叫);}// 实现抽象方法}// const animal new Animal(); // 报错抽象类不能实例化七、关键配置tsconfig.json1. 核心必配项{compilerOptions:{target:ES2020,// 编译后 JS 版本module:ESNext,// 模块规范前端/ CommonJSNodeoutDir:./dist,// 输出目录rootDir:./src,// 源码目录strict:true,// 开启严格模式核心esModuleInterop:true,// 兼容 CommonJS/ESMmoduleResolution:Bundler,// 模块解析前端用 BundlerskipLibCheck:true,// 跳过第三方库类型检查提效baseUrl:./,// 基础路径paths:{/*:[src/*]}// 路径别名 指向 src},include:[./src/**/*],// 编译范围exclude:[node_modules]// 排除目录}八、常见问题解决方案1. null 不能赋值给其他类型// 方案1联合类型推荐letmsg:string|nullnull;// 方案2非空断言确定非 nullconstinputdocument.getElementById(input)!;// 方案3可选链短路避免报错user?.name?.length;2. 找不到模块声明文件// 方案1安装社区类型优先npm install types/xxx-D// 方案2手动声明模块src/types/index.d.tsdeclaremodulexxx{exportfunctionfn():void;}3. 类属性未初始化classPerson{age:number18;// 方案1直接初始化name:string;constructor(name:string){this.namename;// 方案2构造函数赋值}}九、最佳实践禁用any用unknown替代配合类型守卫优先类型推导变量赋值时让 TS 自动推导减少冗余开启严格模式strict: true提前发现 bug类型复用重复类型抽离为type/interface路径别名用简化导入提升代码可读性。这份速查表覆盖了 TS 开发的核心知识点可直接作为日常开发的参考手册快速定位所需语法和解决方案~
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

富阳网站优化英文seo是什么意思

5大策略革新企业级权限管理:pig系统的动态菜单架构解析 【免费下载链接】pig ↥ ↥ ↥ 点击关注更新,基于 Spring Cloud 2022 、Spring Boot 3.1、 OAuth2 的 RBAC 权限管理系统 项目地址: https://gitcode.com/gh_mirrors/pi/pig 在数字化转型浪…

张小明 2025/12/27 19:08:49 网站建设

泉州网站建设培训机构南川网站制作

第一章:Open-AutoGLM与物联网边缘计算的融合背景 随着物联网(IoT)设备数量的爆发式增长,传统云计算架构在延迟、带宽和隐私方面面临严峻挑战。边缘计算通过将数据处理任务下沉至靠近数据源的边缘节点,显著提升了响应速…

张小明 2025/12/27 19:08:17 网站建设

网站建设陆金手指谷哥9电子商务网站建设岗位要求

RPA(Robotic Process Automation)即机器人流程自动化,是一种依托软件机器人模拟人类在计算机界面操作的技术。它通过预设规则,自动执行重复性、标准化任务,如数据录入、系统操作、文件处理等,无需改造现有系…

张小明 2025/12/27 19:07:45 网站建设

分成型网站建设开放平台登录

局域网部署,如何用飞函视频会议打造企业保密空间 在数字化转型的浪潮中,视频会议已经成为企业日常协作的基础设施。然而,对于党政机关、金融机构、能源企业以及涉及核心机密的制造企业而言,便捷性往往伴随着对安全的考量。公有云会…

张小明 2025/12/27 19:06:40 网站建设

有哪些网站建设的方法北住房和城乡建设厅网站

KiTTY深度配置指南:解锁专业级远程连接管理技巧 【免费下载链接】KiTTY :computer: KiTTY, a free telnet/ssh client for Windows 项目地址: https://gitcode.com/gh_mirrors/kit/KiTTY 作为Windows平台上功能最全面的SSH/Telnet客户端之一,KiTT…

张小明 2025/12/27 19:06:08 网站建设

邯郸专业网站建设报价专业团队为您服务的句子

提升大模型准确率的秘密武器——Kotaemon RAG框架 在当前大模型遍地开花的背景下,一个尴尬的事实却始终挥之不去:我们训练得越强大,它“胡说八道”时就越自信。 你有没有遇到过这样的场景?客户问:“我们上季度的报销政…

张小明 2025/12/27 19:05:36 网站建设