小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
专注于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;
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)
📢欢迎点赞👍收藏🌟留言📝