La meilleure façon est d'utiliser un fichier de définition pour node-java
API, cependant, en utilisant votre premier extrait de code:
var java = require("java");
vous pouvez utiliser une référence à this node typing comme suit:
/// <reference path="node/node.d.ts" />
var java = require("java");
java.classpath.push("commons-lang3-3.1.jar");
java.classpath.push("commons-io.jar");
var list = java.newInstanceSync("java.util.ArrayList");
java.newInstance("java.util.ArrayList", function(err, list) {
list.addSync("item1");
list.addSync("item2");
});
var ArrayList = java.import('java.util.ArrayList');
var list2 = new ArrayList();
list.addSync('item1');
Pour utiliser le deuxième extrait:
import java = module("java");
vous aurez besoin d'un fichier de définition. Pour un coup de pied, vous pouvez commencer à créer un fichier node-java.d.ts
avec le code suivant:
module "java" {
export var classpath: { push(jar: string); };
export function newInstanceSync(type: string);
export function newInstance(type: string, callback: (err, list) => any);
export function import(type: string);
export function newArray(...item: any[]);
export function callStaticMethodSync(...args: any[]);
}
Et utiliser ce fichier comme suit:
/// <reference path="node-java.d.ts" />
import java = module("java");
java.classpath.push("commons-lang3-3.1.jar");
java.classpath.push("commons-io.jar");
var list = java.newInstanceSync("java.util.ArrayList");
java.newInstance("java.util.ArrayList", function(err, list) {
list.addSync("item1");
list.addSync("item2");
});
var ArrayList = java.import('java.util.ArrayList');
var list2 = new ArrayList();
list.addSync('item1');
Avoir du temps, je vais envoyer une définition node-java
-DefinitelyTyped référentiel.
Qu'est-ce que vous utilisez comme chargeur de module? ExigeJS? – thomaux
@Anzeo node.js a un chargeur de module intégré. – Fenton
@SteveFenton Doh! :) – thomaux