👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。
👉前提
非小白文,作者拥有几年编程经验,开发Android和Unity,因当下想开发小游戏学习CocosCreator需要用的TypeScript,所以需要了解下该语言知识。小空会挑重点,简单的回带过甚至不提。
适合做成手册,没事翻翻。
👉实践过程
😜接口
不是如图这样的接口哦
她是抽象方法的一个方案,将一些特征内容抽取出来,然后再让具体的类去实现,好比小时候父母挣钱,孩子花钱。
1. 接口和接口的继承是extends,变量继承用英文符号:
2. 变量继承建议先给初始值
interface ScriptInterfaceOne { myNameOne: string; myNumberStrOne: string[]; //联合类型 unionOne: string | number | boolean; } interface ScriptInterfaceTwo { myNameTwo: string; myNumberStrTwo: string[]; //联合类型 unionTwo: string | number | boolean; } interface ScriptInterfaceThree extends ScriptInterfaceOne, ScriptInterfaceTwo { myNameThree: string; myNumberStrThree: string[]; //联合类型 unionThree: string | number | boolean; } //接口继承-记得给初始值 let interOne: ScriptInterfaceOne = {myNameOne: "名字", unionOne: "联合", myNumberStrOne: ["1", "2"]}; interOne.myNameOne = ""; interOne.unionOne = "接口的联合"; //接口是可以继承多个的 接口与接口的继承用关键字extends 变量继承用英文符号 : let interThree: ScriptInterfaceThree = { myNameOne: "名字", unionOne: "联合", myNumberStrOne: ["1", "2"], myNameTwo: "名字", unionTwo: "联合", myNumberStrTwo: ["1", "2"], myNameThree: "名字", unionThree: "联合", myNumberStrThree: ["1", "2"] }; 复制代码
😜类
l 类是和接口有区别,只能单个继承,即类A只能继承类B或类C,不能类B和类A同时继承,但是可以套娃继承 类B继承类C,类A再继承类B,这样类A也有C的属性。
l 类的构造函数只有一个,否则出错。
l 子类可访问父类里面的属性和重写父类方法。
l 类可以实现接口,用implenments,类的继承用extends。
l 类默认是public公有可见的,而Java和C#默认是非公有的。
l 抽象类和Java一致,关键词abstract和extends,且派生类必须实现抽象类内的方法
instanceof 运算符用于判断对象是否是指定的类型,如果是返回 true,否则返回 false。
//instanceof关键字判断变量是否是对应的类型
let isType = lei instanceof ScriptLei;
//正常的普通的类 class ScriptLei implements ScriptInterfaceTwo { private _myName: string | null = null; private _myAge: number | null = null; set myName(value: string | null) { this._myName = value; } set myAge(value: number | null) { this._myAge = value; } get myName(): string | null { return this._myName; } get myAge(): number | null { return this._myAge; } constructor() { } private _myNameTwo: string | null = null; private _myNumberStrTwo: string[] | null = null; private _unionTwo: string | number | boolean | null = null; get myNameTwo(): string | null { return this._myNameTwo; } set myNameTwo(value: string | null) { this._myNameTwo = value; } get myNumberStrTwo(): string[] | null { return this._myNumberStrTwo; } set myNumberStrTwo(value: string[] | null) { this._myNumberStrTwo = value; } get unionTwo(): string | number | boolean | null { return this._unionTwo; } set unionTwo(value: string | number | boolean | null) { this._unionTwo = value; } } //调用类 let lei = new ScriptLei(); lei.myName = "我的名字"; lei.myAge = 18; 复制代码
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:
https://www.zhihu.com/people/zhimalier
https://juejin.cn/user/4265760844943479
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。