Как объявить метод связывания функции не соответствует машинописи

голоса
1

Я пытаюсь использовать Mootools вместе с машинопись. Mootools, и некоторые современные браузеры поддерживают .bind метод, который является полиморфным.

Как я могу правильно объявить эту функцию в * .d.ts файл, чтобы иметь возможность использовать конструкции типа [1,2] .map (this.foo.bind (это)); ?

Я знаю , что могу избежать таких конструкций с помощью лямбды, но иногда я не хочу.

Возможно, такое файл mootools.d.ts где-то, который я мог загрузить вместо того чтобы изобретать это сам?

Задан 08/10/2012 в 17:35
источник пользователем
На других языках...                            


2 ответов

голоса
1

lib.d.ts машинописи уже определяет подпись функции BIND в интерфейсе функции следующим образом:

bind(thisArg: any, ...argArray: any[]): Function;

Я не думаю, что есть лучший способ сделать это, пока дженерики не добавляются к языку.

На данный момент, хотя, если вы хотите использовать привязку и получатель результирующей функции ожидает конкретную подпись, вы будете иметь, чтобы бросить функцию обратно в эту подпись:

var bfn : (p: number) => string;
bfn = <(p: number) => string> fn.bind(ctx);
Ответил 08/10/2012 в 19:03
источник пользователем

голоса
0

Там в растущий список файлов определения отслеживаются здесь .

Что касается создания методов предустановок переплета их этого указателя в машинописном я предложил два способа сделать это. 1) простой базовый класс я определил в конце этой нити . и 2) более продвинутую подмешать и атрибут системы здесь .

Ответил 08/10/2012 в 18:48
источник пользователем

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