Tutorial :Why can't typed optional arguments have a default of Null?


In ActionScript 3, when you declare an optional argument by giving it a default value, the value null cannot be used on typed arguments.

function Action(Param:int=null){      // 1184: Incompatible default value of type Null where int is expected.  }  function Action(Param:int=0){      // No compiler errors  }   

Any workarounds for this, or general purpose values that can apply to all data types?


You can change your int to Number and then can set it to NaN which is a special number that means 'not a number' and this can represent your null state for a Number.

To check if something is NaN, you must use the isNaN() function and not val == NaN, or you will not get what you expect.

function Action(param:Number = NaN) : void {      trace(param);  }  

For all other objects, you can set them to null, but 'primitive' numbers are handled differently in Actionscript.


int variables cannot be null, that's why you get that error, only reference types like objects can be null

Instead you can use NaN as a special number instead of null. If you want to check if something is NaN you mus use the isNaN function.


you could also include a flag in the method signature to avoid having the parameter promoted from int to number:

function whatever(intProvided:Boolean = false, someInt:int = 0):void  {      if(intProvided)          doSomeStuff();  }  

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »