如何在ReactJS + Typescript中应用IIFE?

时间:2018-11-26 03:46:39

标签: reactjs typescript iife

我想在ReactJS + Typescript环境中使用IIFE。所以我用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>

但是当我运行上述代码时,出现此错误 Uncaught ReferenceError:未定义无线电

是否可以像上面那样实现IIFE?

谢谢

1 个答案:

答案 0 :(得分:0)

  

但是当我在上面的代码中运行时,出现此错误Uncaught ReferenceError:未定义无线电

如果您希望此旧代码仍然有效,则需要像以前一样将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;