#javascript #typescript
#javascript #typescript
Вопрос:
Исходя из потока, раньше это было нормально, но, по-видимому, не так в TS, и я не могу найти достойный пример в Интернете:
type Props = {
fnA(string, string | object): void;
// ^ Unexpected token, expected ","
fnB(string, any): void; // No problems with this
}
Как правильно написать тип объединения для параметра функции?
Ответ №1:
Это особенность синтаксиса TypeScript: в типе функции вы должны дать имена всем параметрам:
type Props = {
fnA(a: string, b: string | object): void;
fnB(string, any): void; // string, any are parameter names, not types
}
Во второй функции fnB
, string
и any
ошибочно интерпретируются не как типы, а как имена аргументов, которые имеют неявный any
тип — если у вас была --noImplicitAny
включена опция, вы бы получили сообщение об этом.