This page documents a user-defined function that you can copy and paste into your addon. Replace PREFIX with your addon or lib prefix to avoid conflicts between different versions of these functions.

User defined functions

This function is designed to make long If statements quicker and easier. Allows you to check lots of values at once for the same type

<PREFIX>_allAreType(type, param [,param [, ...]])


If just the type parameter is given then the function returns true, as no parameters have failed the check (See example 'c' below).

Function Parameters[edit | edit source]

Arguments[edit | edit source]

String - A string that represents the desired type of the values. See type() for further help on this value.
any - A list of values to check for the same, consistent type.

Returns[edit | edit source]

Boolean - true if all of the params have the desired type, false if atleast one fails.

Example[edit | edit source]

local a = <PREFIX>_allAreType("string", "Hello", DEFAULT_CHAT_FRAME:GetName())
local b = <PREFIX>_allAreType("number", 65, tonumber("two"))
local c = <PREFIX>_allAreType("table", {}, {5, 3, "Hello"}, "Bob")

-- edge cases
local d = <PREFIX>_allAreType("function")
local e = <PREFIX>_allAreType("function", nil)

Result[edit | edit source]

a = true
b = false
c = false

-- edge cases
d = true
e = false

Code[edit | edit source]

function <PREFIX>_allAreType(typeStr, ...)
  local value
  for i = 1, select('#', ...) do
    value = select(i, ...)
    if type(value) ~= typeStr then
      return false
  return true
Community content is available under CC-BY-SA unless otherwise noted.