从字符串中评估Typescript?

时间:2017-07-17 21:20:10

标签: typescript

是否可以将我的Typescript代码保存在字符串中并在运行时进行评估?举个简单的例子:

package test;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;


public class Test2 extends Application{

public static void main(String[] args) {
    Test2.launch(args);     
}

@Override
public void start(Stage stage) throws Exception {
    DragDetectedHandler dragDetectedHandler = new 
       DragDetectedHandler("Test");
    Button button = new Button();
    button.setOnDragDetected(dragDetectedHandler);
    Scene scene = new Scene(button);
    stage.setScene(scene);
    stage.show();
}

}

然后像这样运行:

let code: string = `({
    Run: (data: string): string => {
        console.log(data); return Promise.resolve("SUCCESS"); }
    })`;

应打印:

let runnalbe = eval(code);
runnable.Run("RUN!").then((result:string)=>{console.log(result);});

2 个答案:

答案 0 :(得分:9)

official TypeScript compiler API提供了一种转换源字符串的方法:

GL_TEXTURE0

答案 1 :(得分:0)

  

是否可以将我的Typescript代码保存在字符串中并在运行时调整它

是。通过使用TypeScript编译器的transpile函数。

更多

Checkout TypeScript - 脚本:https://github.com/basarat/typescript-script,它的核心只是ts.transpilehttps://github.com/basarat/typescript-script/blob/163388be673a56128cc1e1b3c76588001a8c1b18/transpiler.js#L60