Search code examples
typescripttsc

Typescript: Unable to get value of the property 'block': object is null or undefined


I write code for valid phone number. But when I compile project I have following mistakes:

  1. Unable to get value of the property 'block': object is null or undefined;
  2. output from command ""C:\Program Files (x86)\Microsoft SDKs\TypeScript\tsc" "C:..\Scripts\MyScripts\TS\BuildPhone.ts" "C:..\Scripts\MyScripts\TS\ProductsViewModel.ts" "C:..\Scripts\MyScripts\TS\helloWorld.ts"" with code 1.

    // Interface
    interface IPhoneBuild
    {
        showPhone(): string;
        checkPhone(): boolean;
    }
    
    class Phone
    {
        Code: string;
        Number: string;
        Fax: boolean;
    }
    
    // Module
    module Phones
    {
        // Class
        export class PhoneBuild implements IPhoneBuild
        {
            private phone: Phone;
            private codes: string[];
    
            // Constructor
            constructor(public Number: string, public Code: string, public Codes: string[])
            {
                this.phone = this.buildPhone(Number, Code);
                this.codes = Codes;
            }
    
            //Private Methods
            private clearPhone(public reg: string)
            {
                var re = /\W/g;
                return reg.replace(re, "");
            }
    
            private buildPhone(public num: string, public code: string)
            {
                var p: Phone = { Code: "", Number: "", Fax: false };
    
                num = this.clearPhone(num);
    
                if (num.length == 6)
                {
                    p = { Code: code, Fax: false, Number: num };
                }
    
                if (num.length == 11)
                {
                    p = { Code: num.substring(0, 4), Fax: false, Number: num.substring(4)};
                }
    
                return p;
            }
    
            // Instance member
            public showPhone()
            {
                return this.phone.Code + this.phone.Number;
            }
    
            public checkPhone()
            {
                return this.phone.Number.length != 7 || this.phone.Code.length == 0;
            }
        }
    }
    

What do you think about? I need help.

I found resolve: Delete "public" in properties in methods: buildPhone and clearPhone.


Solution

  • You cannot declare parameters of a member function as public. That is only valid for constructors where it is used as a shorthand for:

    • declaring a member variable
    • also assigning the input parameter to the member variable