Я пытаюсь импортировать класс nodejs в код машинописного текста с использованием файла декларации (d.ts). Чтобы проверить это, я создал простой класс nodejs, файл декларации и файл машинописного текста, который будет импортировать (потреблять) класс nodejs.Импорт NodeJs в ошибки компиляции TypeScript
содержание TS_PROJECT/node_modules/newtest/index.js:
var HelloWorld = function() {
}
HelloWorld.hello2 = function() {
console.log("hello2");
}
HelloWorld.prototype.hello1 = function() {
console.log("hello1");
}
module.exports = HelloWorld;
Так как вы можете видеть, это класс, который будет иметь функцию-член "hello1" и статическая функция "hello2".
Теперь я пытаюсь объявить его в TS_PROJECT/newtest/index.d.ts:
declare module newtest {
export class HelloWorld {
hello1():void;
static hello2():void;
}
}
export = newtest;
И в конце концов, пытаясь потреблять его из index.ts:
/// <reference path="./newtest/index.d.ts" />
import * as mymodule from "newtest";
Теперь я Я пытаюсь создать экземпляр объекта и вызвать функции, но независимо от того, что я пытаюсь сделать, он не компилируется. Я пробовал много вариантов, но никто из них не работает. Например:
// Doesn't Work
import HelloWorld = mymodule.HelloWorld;
let s: HelloWorld = new HelloWorld();
// It results with the following compile errors:
// error TS2339: Property 'HelloWorld' does not exist on type 'typeof "newtest"'.
// error TS2694: Namespace '"newtest"' has no exported member 'HelloWorld'.
Я не буду перечислять все остальные варианты. Но я был бы признателен, если бы кто-нибудь мог помочь мне с надлежащим объявлением и созданием объекта.
Спасибо!
Нам нужны некоторые сообщения об ошибках, чтобы даже начать выяснять, что происходит – rossipedia
Хорошо, я добавил сообщения об ошибках в сообщение. Но я упрощу вопрос. Каким будет подходящий способ сделать объявление для класса HelloWorld и создать его экземпляр? – yuriscom