Как задать имена и типы аргументов для аргумента функции в TypeScript?

#typescript #function #types #arguments

#typescript #функция #типы #аргументы

Вопрос:

В TypeScript вы можете задать типы аргументов, например, следующим образом:

 function x(y: string[], z?: Function)
 

Как вы устанавливаете типы для аргументов аргумента функции?

Например, вот как я представляю, как это будет выглядеть:

 function x(y: string[], z?: Function(a: any, b: any))
 

Ответ №1:

Вы ищете типы, используя обозначение жирной стрелкой.

 function foo(a: (s: string, n: number) => string): string {
    return a("hello", 10);
}
 

Комментарии:

1. Пожалуйста, обратите внимание, что (string, number) => string это, вероятно, не то, что вы думаете . В TypeScript вы должны дать (фиктивные) имена параметрам в сигнатурах функций. Ваши string и number интерпретируются как имена (подразумеваемого any типа), а не типы. Скорее всего, вы имеете в виду что-то вроде (s: string, n: number) => string «вместо этого».

2. Я повторяю предупреждение @jcalz! будьте осторожны с этими именами, пожалуйста, измените их, они просто приведут к путанице, это не функция, которая принимает string , а number функция, которая принимает any и any ОГРОМНАЯ разница

3. Ты прав @jcalz, я слишком быстро нажал на спусковой крючок, и в меня закралась предупреждающая лень.