Mam moduł, który zależy od Backbone
. Mam backbone.d.ts
definicji, ale maszynopis nie wydają się chce skompilować mój moduł chyba mojaImportuj moduł TypeScript używając tylko definicji otoczenia do użycia w amd
import Backbone = module("backbone")
faktycznie wskazuje na ważną modułu szkieletowej w przeciwieństwie do pliku definicji. Używam modułów ładowanych przez AMD i zdefiniowałem shred dla requirejs dla szkieletu.
Czy istnieje inne rozwiązanie oprócz tworzenia definicji modułu php?
Aktualizacja: Efektem ubocznym rozwiązania jest to, że kod taki jak ten nie działa, ponieważ moduł już nie istnieje. Musi istnieć z powodu wymaganego shim. Jedynym sposobem obejścia tego problemu jest posiadanie dwóch plików .d.ts. Jeden dla pliku używającego szkieletu jako importu, który nie zawiera bitu declare module
. Druga do korzystania z /// <reference
, która obejmuje linię declare module
.
/// <reference path="../dep/backbone/backbone.d.ts" />
interface IApi {
version: number;
Events: Backbone.Events;
}
Ja tylko próbuje to prawda w Visual Studio i jestem odtwarzam twój problem. Pozwól mi sprawdzić, czy mogę to naprawić! – Fenton
W moim teście stwierdziłem, że Deklaracja otoczenia musi pomijać blok 'module', tak jak normalny moduł w AMD lub CommonJS. – Fenton
Doskonale, dzięki! – ryan