На самом деле я ищу стратегию для переноса наших проектов 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 ":
Но если я создам новый экземпляр, определения функций этого класса будут видны:
Что я могу сделать, чтобы получить Type здесь, не переходя в «реальный класс машинописи»?Я знаю, если я перепишу все это будет работать.Но для первого шага миграции это слишком много.
С уважением, wuhi