• TypeScript class private field All In One


    TypeScript class private field All In One

    TypeScript class

    class Person {
        #name: string
        constructor() {
            this.#name = 'eric'
        }
    }
    
    

    WeakMap

    "use strict";
    var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
        if (kind === "m") throw new TypeError("Private method is not writable");
        if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
        if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
        return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
    };
    var _Person_name;
    class Person {
        constructor() {
            _Person_name.set(this, void 0);
            __classPrivateFieldSet(this, _Person_name, 'eric', "f");
        }
    }
    _Person_name = new WeakMap();
    
    

    ES6 class

    class Person {
        #name: string
        constructor(name) {
            this.#name = name;
        }
    }
    
    const person = new Person('eric');
    
    person;
    // Person {#name: 'eric'}
    person.name;
    // undefined
    person.#name;
    // ❌ Uncaught SyntaxError: Private field '#name' must be declared in an enclosing class
    
    

    refs



    ©xgqfrms 2012-2020

    www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

    原创文章,版权所有©️xgqfrms, 禁止转载 ️,侵权必究⚠️!


  • 相关阅读:
    linux命令-ps
    solr参数说明
    CAP原理和BASE思想
    java多线程文件上传服务器
    swift的简介
    浅谈对【OSI七层协议】的理解
    手写简易WEB服务器
    JVM知识整理和学习(转载并修改)
    多线程学习笔记六
    多线程学习笔记五
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/16118689.html
Copyright © 2020-2023  润新知