Переход с Javascript на Typescript: как экспортировать типы - PullRequest
0 голосов
/ 20 февраля 2019

На самом деле я ищу стратегию для переноса наших проектов dojo 1.x с javascript на typescript.Моя идея состояла в том, чтобы сделать это шаг за шагом.Итак, на первом этапе переименуйте все файлы .js в .ts.выполняя это, минимальные изменения необходимы, чтобы получить рабочий машинописный «класс».

пример: мой класс «RequestManager» был определен с помощью Declare

define(["dojo/_base/declare",
		"dojo/_base/array",
		"dojo/_base/lang",
		"dojo/request/xhr",
		"dojo/_base/connect"
], function (
		declare,
		arr,
		lang,
		xhr,
		connect) {

    return declare("RequestManager", null, {

        _runningRequests: [],
        silentExceptions: false,

        constructor: function () {
            this._runningRequests = [];
        },

Я изменил его для машинописи следующим образом:

import declare = require("dojo/_base/declare");
import lang = require("dojo/_base/lang");
import arr = require("dojo/_base/array");
import xhr = require("dojo/request/xhr");
import connect = require("dojo/_base/connect");

export default declare("RequestManager", null, {

    _runningRequests: [],
    silentExceptions: false,

    constructor: function () {
        this._runningRequests = [];
    },

Но если я хочу использовать его как тип в моем main.ts, он говорит: " Не удается найти Name RequestManager ":

Cannot find Name RequestManager

Но если я создам новый экземпляр, определения функций этого класса будут видны:

direct instance

Что я могу сделать, чтобы получить Type здесь, не переходя в «реальный класс машинописи»?Я знаю, если я перепишу все это будет работать.Но для первого шага миграции это слишком много.

С уважением, wuhi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...