Импорт синтаксис для ссылки на dgrid из машинописи

голоса
1

Я учусь машинопись и Dojo параллельно, и это подвергается мое ограниченное понимание AMD. Я не понимаю, как связать оператор импорта на 3-й партии модуля «dgrid / Сетка» AMD, моей декларации dgrid.d.ts заглушки и моего класса, потребляющего. После 2-х дней затраченных усилий я ищу любые средства (Hacky или драмы наилучшей практики) для выполнения следующих действий:

MyModule.ts

{
    ...
    var myGrid = new dgrid.Grid( { /*col structure*/}, divId);
    ...
}

Вот мой окурок декларация файл для dgrid.

dgrid.d.ts ( под редакцией для синхронизации с Update 1 ниже)

module dgrid/Grid
{
    export class Grid
    {
        constructor ( gridStructure: any, elementId: string);
    }
}

Я попытался следующие ссылки в моем классе потребляющей машинописи, но Visual Studio подчеркивает «dgrid / Grid» буквальный красного цвет, потому что я предполагаю, что компилятор TS не знает классического Dojo dojoConfig, BaseUrl и dgrid деклараций пакетов в файле default.htm.

///<reference path='dgrid.d.ts' />

import Grid = module(dgrid/Grid);

module MyModule
{
   ...
}

Обновление 1 После публикации я прочитал главы 10 в официальном руководстве машинописи. Ранее я не в состоянии признать значение модулей , заявленных в качестве модуля MyType {} или модуля «внешний / ThirdParty» {}. Окружающая среда декларация для внешнего модуля должна быть буквальной.

Задний план:

Требовать заявление:

require([dgrid/Grid, dojo/domReady!],
    function(Grid){
Задан 11/10/2012 в 13:43
источник пользователем
На других языках...                            


2 ответов

голоса
1

Следующий (немного изменен) версия кода компилируется нормально для меня:

MyModule.ts

///<reference path='./dgrid.d.ts' />
module MyModule {
    var gridInstance : dgrid.Grid = new dgrid.Grid("test1", "test2");
}

dgrid.d.ts

module dgrid
{
    class Grid
    {   
        constructor ( gridStructure: any, elementId: string);
    }   

}

///<reference path='...'/>Конструкция приносит внутренний модуль dgridв области видимости. Приставка имени типа с именем модуля делает работу.

Ответил 11/10/2012 в 15:45
источник пользователем

голоса
0

Мой первый хотя бы проверить, что файл находится в местах, вы думаете, что за это заявление на работу:

///<reference path='dgrid.d.ts' />

Является ли dgrid.d.tsфайл в той же папке вашего модуля .TS файла?

Обновить:

Если вы модуль декларации быть:

module dgrid {
    export class Grid {
        constructor ( gridStructure: any, elementId: string) {

        }
    }
}
Ответил 11/10/2012 в 14:52
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more