Как применить IIFE в ReactJS + Typescript? - PullRequest
0 голосов
/ 26 ноября 2018

Я хотел бы использовать IIFE в среде ReactJS + Typescript.Поэтому я переписываю этот код с помощью ReactJS + Typescript

IIFE

(function() { 
        //Constructor
        this.Radio = function(){ 

            var defaults = { 
                locale: "en-US", 
            }

        } 

        // Public Methods   
        Radio.prototype.load = function() { 

        } 
      }());

ReactJS + Typescript

    export default class Radio{
    options: any = { 
        locale: "en-US", 

    };
    constructor(props: any) {
        var defaults = { 
            locale: "en-US", 
        }

    }       

    // Public Methods   
    load = () => { 
    }
} 

Чтоя пытаюсь добиться, когда загрузку bundle.js со страницы HTML я могу создать, передав некоторое значение, как показано ниже

<script src="main.js"></script>
<body> 


    <div id="app"></div>

</body> 

<script>
    $(function() {
        var test = new Radio({   <----error on this line         
            locale: "en-US",            
        });
        test.load();
    });
</script>

Но когда я запускаю выше кода, я получил эту ошибку UncaughtReferenceError: Радио не определено

Возможно ли реализовать IIFE, как указано выше?

Спасибо

1 Ответ

0 голосов
/ 26 ноября 2018

Но когда я запускаю вышеуказанный код, я получаю эту ошибку Uncaught ReferenceError: Radio не определено

Если вы хотите, чтобы этот старый код все еще работал, вам нужно поставить Radio на этокак в старые времена.Например,

 export default class Radio{
    options: any = { 
        locale: "en-US", 

    };
    constructor(props: any) {
        var defaults = { 
            locale: "en-US", 
        }

    }       

    // Public Methods   
    load = () => { 
    }
} 

// ADD
(window as any).Radio = Radio;
...