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.

  • 相关阅读:
    linux nat style
    vmware tools install
    linux network
    sql group by max
    实例 | tp5使用七牛云上传图片和文件/删除文件
    菜鸟如何使用composer
    浅谈数据库用户表结构设计,第三方登录
    app登陆,注册,第三方登陆数据设计及业务流程
    数据库设计——评论回复功能
    app接口设计之token的php实现
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5958286.html
Copyright © 2011-2022 走看看