PHPDoc для массива, который имеет либо общую, либо конкретную структуруPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHPDoc для массива, который имеет либо общую, либо конкретную структуру

Сообщение Anonymous »

Используя PhpStorm и пытаясь найти правильный PHPDoc для метода, который может принимать строковую строку, или общий массив array, или очень конкретную ассоциативную связь массив массив {sourceType: строка, лотыOfOptionKeys?: строка. Инстинктом было объединить их с помощью |, который работает для строки, числового массива строк и очень специфической структуры, но общий массив array, похоже, всегда запускает конкретную проверку формы, которая затем помечает это как ошибку.
В итоге докблок выглядит вот так
/**
* @param string | array | array{
* sourceType: string,
* lotsOfOptionKeys?: string
* } $options
*/

✅ это работает:
method('thisIsAString');

✅ то же самое:
method(['a', 'b', 'c']);

✅ и вот это:
method(['sourceType' => 'asdfasd', 'lotsOfOptionKeys' => 'asfd']);

❌ но выдает ошибку и говорит, что это должен быть один из sourceType...:
method(['a' => 'AAA', 'b' => 'BBB']);


Подробнее здесь: https://stackoverflow.com/questions/790 ... -structure
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»