`namespace` is manily for the left over from the days where we’d refer to libraries through a single global variable. With this in mind, let’s not give namespace
too much more thought for now.
For example:
// using $ as class calling static method $.ajax({ url: "/api/getWeather", data: { zipcode: 97201, }, success: function (result) { $("#weather-temp")[0].innerHTML = "<strong>" + result + "</strong> degrees" }, }) // using $ as function call $("h1.title").forEach((node) => { node.tagName // "h1" })
In order to desribe the types for `ajax`, we use namespace
function $(selector: string): NodeListOf<Element> { return document.querySelectorAll(selector) } namespace $ { export function ajax(arg: { url: string data: any success: (response: any) => void }): Promise<any> { return Promise.resolve() } }