[Typescript] namespace

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

 

posted @ 2022-08-08 18:23  Zhentiw  阅读(16)  评论(0编辑  收藏  举报