Само объявление не собирается выдавать ошибку. Когда вы не объявляете тип в определении переменной, вы не отменяете проверку типа, вы просто откладываете его во время выполнения вместо времени компиляции, даже если включен строгий режим. Вот пример кода, подобного вашему:
function typeTest(xParam:Array)
{
trace(xParam);
}
var myNum = 3;
typeTest(myNum);
// run-time error in ActionScript 3.0
Это все равно будет компилироваться даже в строгом режиме. Идея строгого режима заключается в том, что вы можете использовать возможности строгой типизации Actionscript 3 при написании кода и, следовательно, ловить больше ошибок во время компиляции, а не во время выполнения. Если вы не используете эти способности (не строго вводя свои переменные в коде), то это бесполезно для вас. Смотрите следующую ссылку для полной документации по этому вопросу:
http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f8a.html