ts笔记
1.array tuple,元组为给定数据类型的数组
1 2 | let arrOfNumbers: number[] = [1,2,3] let user: [string, number] = [ 's' , 2] |
2.尽量避免用any,因为就失去了ts的意义了
3.Partial,变为可选。 Omit,去掉某个属性。
1 2 3 4 5 6 7 8 9 10 11 | interface Person { name: string age: number } let viking : Person = { name: 'd' , age: 2} type IPartials = Partial<Person> let viking2: IPartials = {} type IOmit = Omit<Person, 'name' > let viking3: IOmit = {age:1} |
4.enum
1 2 3 4 5 6 7 8 | const enum Direction { Up = 10, Down, Left, Right } console.log(Direction.Up) |
5.interface
1 2 3 4 5 6 7 8 9 10 11 | interface Person { readonly id: number; name: string; age?: number; } let viking: Person = { id: 1, name: 'dd' , age: 1, } |
6.范型,对于未知数据来源的一个占位
1 2 3 4 5 6 7 | interface KeyPair<T,U>{ key: T, value: U } let kp1: KeyPair<number, string> = {key:1 , value: 'string' } let kp2: KeyPair<string, number> = {key: '1' , value: 1} |
7.type和interface的区别
联合类型只能用type
1 | type str = string | number |
interface可以合并同名接口, type不行
1 2 3 | interface A{name:string} interface A{age:number} var x:A={name: 'xx' ,age:20} |
interface继承用extends,type用&
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix