2015-12-02 3 views
-1

Все:функции запутать в машинописных

[UPDATE] Я полагаю, что из: Один поста в SO объяснить: In TypeScript how do I declare an array of functions that accept a string and return a string?
получается:

Типа функции буквальным формы

(ParamList) => ReturnType

я именно то, что эквивалентно типу объекта буквального

{(ParamList): ReturnType}

Так, Colon : с кронштейном {}< => Arrow =>


Я довольно новый для Typcript, есть один пример, меня смущает его синтаксис:

var sayHello: (input: string) : string = function (s: string) { 
    return "Hello " + s; 
} 
var stringUtils: { (input: string): string; }[]; 
stringUtils.push(sayHello); 

Не могли бы помочь дать небольшое объяснение, что делает этот код? Особенно, что делает определение первой части?

var sayHello: (input: string) : string = function (s: string) { 
    return "Hello " + s; 
} 

пример говорит SayHello переменная функции, но когда я запускаю его, я получил «=>» ожидаемую ошибку, означает ли этот синтаксис принадлежит к старой машинописи, но не существует в настоящее время?

Благодаря

+0

Я на самом деле даже не уверен, что это действительно TypeScript ...? Кажется, что это не работает, когда я вставляю его здесь: http://www.typescriptlang.org/Playground – Katana314

+0

@ Katana314 Спасибо, ни на моей стороне, так что в принципе это может быть опечатка? – Kuan

+0

Это может быть намерение? 'var sayHello: (input: string) => string = function (s: string) { return" Hello "+ s; } '. Было бы хорошо получить подтверждение, прежде чем вникать в объяснение. – Katana314

ответ

1

Может кто-нибудь помочь, чтобы дать небольшое пояснение, что этот код делать? Особенно то, что делает первое определение части var sayHello: (input: string) : string = function (s: string) {

Должно быть:

var sayHello: (input: string) => string = function (s: string) { 

Мы говорим, что sayHello это функция, которая принимает строку и возвращает строку : (input: string) => string. Затем мы назначаем его такой функции = function (s: string) {

+0

Спасибо, я читаю вашу предложенную gitbook. Меня озадачивает определение интерфейса, интересно, как определить интерфейс с членом строки и членом функции с одним строковым параметром и возвращаемой строкой? – Kuan

+0

Я читал из этого сообщения: http://blogs.msdn.com/b/typescript/archive/2013/01/24/interfaces-walkthrough.aspx, когда задаю функцию внутри интерфейса, я не уверен, почему он может использовать на этот раз? (в базовом разделе: он использует интерфейс Greetable { приветствие (сообщение: строка): void; } ) – Kuan

+0

@Kuan эта разница здесь: http://stackoverflow.com/questions/32043487/difference-between-call -сигнал-функция-тип/32043715 # 32043715 Его справедливая стенография – basarat

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