returnUndefined
returnUndefined
() => undefined
Return undefined
returnUndefined() // is undefined returnUndefined('a', 'b') // is undefined
returnUndefined() // is undefined
returnUndefined() // is undefined returnUndefined('a', 'b') // is undefined
returnUndefined() // is undefined
Developers commonly use this as a default. Below, we maintain a keyboard customizer. We only cover one macro key for now, which does nothing by default. Let's have it type 'macro1' to make sure our customizer is working.
const doNothing = returnUndefined // keyboard customizer const initKeyboardConfig = () => { const keyboard = { macro1: doNothing, } const cfg = { pressMacro1: () => keyboard.macro1(), assignMacro1: fn => { keyboard.macro1 = fn }, unassignMacro1: () => { keyboard.macro1 = doNothing }, } return cfg } const config = initKeyboardConfig() const result1 = config.pressMacro1() console.log(result1) // is undefined const typeMacro1 = () => 'macro1' config.assignMacro1(typeMacro1) const result2 = config.pressMacro1() console.log(result2) // is 'macro1' config.unassignMacro1() const result3 = config.pressMacro1() console.log(result3) // is undefined
type UnknownFunction = (...args: never[]) => unknown const doNothing = returnUndefined // keyboard customizer const initKeyboardConfig = () => { const keyboard: Record<string, UnknownFunction> = { macro1: doNothing, } const cfg = { pressMacro1: () => keyboard.macro1(), assignMacro1: (fn: UnknownFunction) => { keyboard.macro1 = fn }, unassignMacro1: () => { keyboard.macro1 = doNothing }, } return cfg } const config = initKeyboardConfig() const result1 = config.pressMacro1() console.log(result1) // is undefined const typeMacro1 = () => 'macro1' config.assignMacro1(typeMacro1) const result2 = config.pressMacro1() console.log(result2) // is 'macro1' config.unassignMacro1() const result3 = config.pressMacro1() console.log(result3) // is undefined
const doNothing = returnUndefined // keyboard customizer const initKeyboardConfig = () => { const keyboard = { macro1: doNothing, } const cfg = { pressMacro1: () => keyboard.macro1(), assignMacro1: fn => { keyboard.macro1 = fn }, unassignMacro1: () => { keyboard.macro1 = doNothing }, } return cfg } const config = initKeyboardConfig() const result1 = config.pressMacro1() console.log(result1) // is undefined const typeMacro1 = () => 'macro1' config.assignMacro1(typeMacro1) const result2 = config.pressMacro1() console.log(result2) // is 'macro1' config.unassignMacro1() const result3 = config.pressMacro1() console.log(result3) // is undefined
type UnknownFunction = ( ...args: never[] ) => unknown const doNothing = returnUndefined // keyboard customizer const initKeyboardConfig = () => { const keyboard: Record< string, UnknownFunction > = { macro1: doNothing, } const cfg = { pressMacro1: () => keyboard.macro1(), assignMacro1: (fn: UnknownFunction) => { keyboard.macro1 = fn }, unassignMacro1: () => { keyboard.macro1 = doNothing }, } return cfg } const config = initKeyboardConfig() const result1 = config.pressMacro1() console.log(result1) // is undefined const typeMacro1 = () => 'macro1' config.assignMacro1(typeMacro1) const result2 = config.pressMacro1() console.log(result2) // is 'macro1' config.unassignMacro1() const result3 = config.pressMacro1() console.log(result3) // is undefined
This function is more commonly known as
noop
which stands for "no operation." More intuitively, we can think of the function as "do nothing." Typically, you'll see it used in libraries that take a callback, which does nothing by default.