snippet l abbr console.log options head console.log(${1}) ${0} snippet i abbr interface options head interface ${1:InterfaceName} { ${2:field}: ${3:type} } ${0} snippet ei abbr export interface options head export interface ${1:InterfaceName} { ${2:field}: ${3:type} } ${0} snippet f abbr function options head function ${1:functionName}(${2:#:args}) { ${0} } snippet ef abbr export function options head export function ${1:functionName}(${2:#:args}) { ${0} } snippet af abbr async function options head async function ${1:functionName}(${2:#:args}) { ${0} } snippet eaf abbr export async function options head export async function ${1:functionName}(${2:#:args}) { ${0} } snippet forr abbr for each dictionary item options head for (const [${1:key}, ${2:value}] of Object.entries(${3:dict})) { ${0} } snippet sw abbr switch options head switch (${1:#:let}) { case ${2:#:val}: ${0:TARGET} break default: throw new Error(`unexpected case`) } snippet try abbr try-catch options head try { ${1} } catch (e) { if (e instanceof Error) { console.log(e.stack) } if (e instanceof ${2:TypeError}) { ${3} } else { throw new Error('${4:context}', { cause: e }) } } ${0} snippet sleep options head await new Promise(resolve => setTimeout(resolve, ${1:1000})) ${0}