👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。
👉前提
非小白文,作者拥有几年编程经验,开发Android和Unity,因当下想开发小游戏学习CocosCreator需要用的TypeScript,所以需要了解下该语言知识。小空会挑重点,简单的回带过甚至不提。
适合做成手册,没事翻翻。
👉实践过程
😜TypeScript介绍
TypeScript 是 JavaScript 的一个超集,由微软开发的开源语言,目标是开发大型应用。
网络异常,图片无法展示
|
😜基础类型
- 基本是和JS相同的数据类型,但小空在此提出几个不同的:
- TS拥有枚举类型,JS没有
- 所有数字都是浮点型,用number表示,却支持二,八,十,十六共四种进制
- 字符串可用双引号或单引号
- 元组可以是混合类型,其实单个的变量也可以是混合类型用 | 符号
- 数字枚举符合自增原则
真实的实例代码如下:
//没赋初始值 从0开始 这=0,是=1,枚=2,举=3 enum MeiJuOne {这, 是, 枚, 举}; //赋初始值 从5开始 这=5,是=6,枚=7,举=8 enum MeiJuTwo {这 = 5, 是, 枚, 举}; //字符串枚举 enum MeiJuThree {字 = "字", 符 = "符", 串 = "串", 枚 = "枚", 举 = "举"}; @ccclass("ScriptLieXing") export class ScriptLieXing extends Component { renYiNum: any = 1; renYiStr: any = "任意类型"; renYiBool: any = false; hexLeiXing: number = 0xf00a; //十六进制 //声明为只读类型 readonly binaryLeiXing: number = 0b1010; // 二进制 octalLeiXing: number = 0o744; // 八进制 decLeiXing: number = 6; // 十进制 years: number = 2; myName: string = "小空"; //字符串类型 双引号 words: string = `小芝`; //字符串类型 单引号 //数组类型 myNumberOneNum: number[] = [1, 2, 3, 4]; myNumberOneStr: string[] = ["1", "2", "3", "4"]; //Arrray可以是任意类型,和List相似 myNumberTwo: Array<number> = [1, 2, 3, 4]; myNumberThree: Array<string> = ["1", "2", "3", "4"]; //元组类型 []里面数量可以随意,但是后面赋值对应位置类型要一致 myGroup: [string, number, boolean] = ["1", 1, true]; start() { this.words = `您好,今年是 ${this.myName} 更文 ${this.years + 1} 周年`; let flag: boolean = true; //布尔类型 let myGroup: [string, number, boolean]; myGroup = ["2", 2, false]; //当然也可以根据数组index来赋值 myGroup[0] = "芝麻粒儿"; myGroup[1] = 3; myGroup[2] = true; console.log(MeiJu.枚); // let nullAndUnOne: number; // nullAndUnOne = 1; // 运行正确 // nullAndUnOne = undefined; // 运行错误-可以看到有红色底线提示错误 // nullAndUnOne = null; // 运行错误-可以看到有红色底线提示错误 // let nullAndUnTwo: number | null | undefined; // nullAndUnTwo = 1; // 运行正确 // nullAndUnTwo = undefined; // 运行正确 // nullAndUnTwo = null; // 运行正确 } //没有返回值的方法 也可以不用void methodTwo() {} methodOne(): void { } methodTwo() { } } 复制代码
注意:
- 声明变量,如果是基础类型,则建议必须赋初始值,否则编译器检查出错,这也是考虑健壮性。
- 注意null和undefined是类型,和Java或c#有些许区别,当你是指定的基础类型后无法再赋值null或undefined,如果需要你要在创建变量的时候就要加上!
网络异常,图片无法展示|
- 可用 | 来支持多种类型,如上图所示。如果想初始变量可为null,则:_jumpStep: number | null = null;
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:
https://www.zhihu.com/people/zhimalier
https://juejin.cn/user/4265760844943479
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。