假设我有一堆不同的TypeScript(或JS文件)文件。这是一个主要的驱动程序部分,然后一些TS / JS文件充当独立的插件。假设我有一个只想要一个或两个插件的用户。
我认为如果插件只是附加的并挂钩到现有代码中,那么可以对其进行评估。
因此,例如,有人要求加载' triangleShapeModule'。是否可以以这样的方式编写triangleShapeModule.ts / js,以便我的原始程序可以评估内容并获得函数钩子。
大致类似于:
function load_module(name) {
eval_file(name + ".js")
get_function(name + "_init") ()
}
我的问题是我要加载的模块,如何告诉TS init函数的类型是什么?
答案 0 :(得分:-1)
只需使用节点(...)
constructor() {
super();
this.state = {
data : {// some state, option : {//values here}, facebook: false}
}
}
...
onOptionsChange(newState){
this.setState({data: newState});
}
render(){
return (
<Options onOptionsChange={(newState) =>
this.onOptionsChange(newState)} data = {this.state.data}/>
)
}
}
(...)
加载文件并使用其导出的函数。还提供(...)
switch(option.target.id) {
case 'facebook':
this.props.onOptionsChange({...this.props.data,
options:{...this.props.options,
facebook: option.target.checked}})
(...)
,其中包含模块导出应支持的接口。