外部 子类
    public
    private × ×
    protected ×
    1. class Person{
    2. /* 1、使用private修饰的变量在类外部是不可读取的 */
    3. private name:string ="lisi";
    4. public age:number = 20;
    5. sayName(){
    6. console.log(this.name);
    7. }
    8. sayAge(){
    9. console.log(this.age);
    10. }
    11. }
    12. var p:Person = new Person();
    13. // console.log(p)
    14. // console.log(p.name);
    15. // console.log(p.age);
    16. p.age = 30;
    17. // console.log(p);
    18. p.sayName();
    19. p.sayAge();
    1. class Student{
    2. protected name:string = "lisi";
    3. sayName(){
    4. console.log(this.name);
    5. }
    6. }
    7. /*
    8. protected和private的区别:在子类中
    9. protected是可以访问的
    10. private不可以访问
    11. */
    12. class MidStudent extends Student{
    13. getName(){
    14. console.log(this.name);
    15. }
    16. };
    17. var m:MidStudent = new MidStudent();
    18. m.getName();
    1. /* static使用static关键字修饰的变量,表示类的公用变量,不用实例化直接使用类名调用 */
    2. /* 在类中声明的变量默认是public */
    3. class Http{
    4. private static baseUrl:string = "https://www.douban.com";
    5. static request(){
    6. console.log("res")
    7. }
    8. }
    9. console.log(Http.baseUrl);
    10. Http.request();
    11. /* 静态变量或静态方法时不能通过实例调用 */
    12. Http.baseUrl = "lisi";