2015-07-20 2 views
1

У меня есть этот код (обрезанный):Машинопись: Сложение: Прилагаемые параметры не соответствуют какой-либо подписи цели вызова

class cSubjectSite { 

    collectionHomeMarker: Microsoft.Maps.EntityCollection; 

    showAddressMarker() { 
     var opts: Microsoft.Maps.EntityCollectionOptions = { 
      zIndex: zIndex_HomeMarker, bubble: true, visible: true 
     }; 
    } 
    // Compiler error on this line: 
    this.collectionHomeMarker = new Microsoft.Maps.EntityCollection(opts); 
} 

Это выглядит хорошо для меня. Вот из декларации Microsoft.Maps.d.ts:

export interface EntityCollectionOptions { 
    bubble?: boolean; 
    visible?: boolean; 
    zIndex?: number; 
} 

export class EntityCollection implements Entity { 
    EntityCollection(options?: EntityCollectionOptions); 
    // Etc. 

Существует также вторая декларация файл Я использую (Microsoft.Maps.AdvancedShapes.d.ts) для расширенных возможностей, которые имеют другое определение для EntityCollection:

export class EntityCollection implements Entity { 
    constructor(options?: EntityCollectionOptions); 

Похоже, что два файла def нацелены на разные версии ts (разные синтаксисы конструктора)? Я не знаю достаточно о файлах def, чтобы сказать.

Я использую VS 2013 с ts 1.5. Я убедился, что переменная path и мой файл proj ссылаются на v1.5. Я получил свои файлы Bing Maps def от Nuget.

Я новичок в машинописном тексте, поэтому мне может быть недостает чего-то фундаментального.

  • Брэд

ответ

0

Так что это выглядит как плохая декларация. Я изменил объявление Microsoft.Maps.d.ts EntityCollection на:

export class EntityCollection implements Entity { 
    constructor(options?: EntityCollectionOptions); 

Это, видимо, является правильным синтаксисом для версии TS я использую (1.5).

0

Microsoft не выпустила библиотеку Машинопись для Bing Maps. Тот, который вы нашли на Nuget, должен быть оберткой, созданной кем-то. Не уверен, кто это хорошо упакован. В API Bing Maps нет класса Microsoft.Maps.EntityCollectionOptions, это просто имя-заполнитель, в который вы помещаете объект, который имеет параметры. Например:

var opts = { visible: true }; 
var layer = new Microsoft.Maps.EntityCollection(opts); 
+0

Файл с идентификатором от [ОпределенноТип] (https://github.com/borisyankov/DefinitelyTyped). Нет Microsoft.Maps.EntityCollectionOptions, но есть объект [Microsoft.Maps.EntityCollectionOptions] (https://msdn.microsoft.com/en-us/library/gg427614.aspx), и, таким образом, файл def включает его для ввода цели. Я не знаю, насколько хорошо это обернуто, поэтому я включил фрагменты из файла def, чтобы кто-то мог видеть, есть ли там что-то не так. –

 Смежные вопросы

  • Нет связанных вопросов^_^