returnUndefined
returnUndefined
() => undefined
Return undefined
returnUndefined() // is undefined returnUndefined('a', 'b') // is undefinedreturnUndefined() // is undefinedreturnUndefined() // is undefined returnUndefined('a', 'b') // is undefinedreturnUndefined() // is undefinedDevelopers 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 undefinedtype 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 undefinedconst 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 undefinedtype 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 undefinedThis function is more commonly known as
noopwhich 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.