zoukankan      html  css  js  c++  java
  • [TypeScript] Creating a Class in TypeScript

    Typescript classes make traditional object oriented programming easier to read and write. In this lesson we learn about class syntax, what the constructor is and some interesting variable features.

    interface Opponent {
        health: number;
        alias: string;
    }
    
    class ComicBookCharacter {
    
        private team: {
            name: string;
            members: ComicBookCharacter[]
        };
    
        static createAndAssignTeam(teamName: string, members: ComicBookCharacter[]) {
            let team = {
                name: teamName,
                members: members
            };
    
            members.forEach((member)=>{
                member.team = team;
            })
        }
    
        constructor(public alias: string,
                    public health: number,
                    public strength: number,
                    private secretIdentity: string) {
    
        }
    
        getTeamName(){
            console.log(`${this.alias} is from ${this.team.name}`);
            return this.team.name;
        }
    
        attackFunc(opponent: Opponent, attackWith) {
            opponent.health -= attackWith;
            console.log(`${this.alias} attacked ${opponent.alias}, who's health = ${opponent.health}`);
            return opponent.health;
        }
    
        getSecretIdentity() {
            if (this.secretIdentity) {
                console.log(`${this.alias} is ${this.secretIdentity}`);
            } else {
                console.log(`${this.alias} has no secret identity`);
            }
        }
    }
    
    const Sparky = new ComicBookCharacter("Sparky", 6700, 3000, "Thunder");
    const Rainer = new ComicBookCharacter("Rainer", 7500, 3400, "Water");
    
    
    ComicBookCharacter.createAndAssignTeam('Eevee', [Sparky,Rainer]);
    Sparky.getTeamName();

    To review, we've learned about access modifiers and the difference between public and private. The constructor is run when the classinstance is initialized, and the shorthand for setting class properties allows us to write less code. We've learned that static properties can only be referenced from the class, not the instance, and how staticproperties have access to an instances private properties.

  • 相关阅读:
    毕业设计:文献参考(六)
    毕业设计:文献参考(五)
    稀疏数组搜索(leetcode)
    寻找重复数(leetcode)
    联通网络的操作次数(leetcode)
    Flutter 混合开发基础
    浅谈 Serverless 开发和应用
    基于 Qt Quick Plugin 快速构建桌面端跨平台组件
    Android 设备音视频兼容性适配
    RTC 系统音频弱网对抗技术发展与实践
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5958286.html
Copyright © 2011-2022 走看看