2016-01-05 2 views
3

У меня есть класс, который имеет тип функции, который принимает функцию в качестве аргумента. Компилятор typescript генерирует «ожидаемую» ошибку на втором =>. Любые мысли почему? Код ниже.Typcript: Тип функции, которая принимает аргумент функции - получение «ожидаемой» ошибки

class Foo{ 
    public fn: ((string) => void) => void; 
} 

var foo = new Foo(); 
foo.fn = function(logger: (string) => void): void{ 
    logger("bar"); 
}; 

var writeToConsole = function(str: string): void { 
    console.log(str); 
} 

foo.fn(writeToConsole); 

ответ

4

Поскольку внутренняя функция нуждается имя и только тогда вы можете указать его тип:

public fn: (inner: (string) => void) => void; 

Очевидно, что inner произвольно, изменить его по своему вкусу. Посмотрите, как это работает в Typescript playground (примечание: использование укороченного URL-адреса, поскольку исходная ссылка содержит скобки, которые испортили уценку, и мне не кажется, что они избегают их всех)

+0

Отлично, это работает! Благодаря! – RJM

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