`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()
}
}