Skip to content

declare 只是为了代码提示功能,没有实现。

ts
declare let vue: string
declare function sum(x: number, y: number): void
declare interface Foo {
  name: string
}

declare module A {
  // declare module 内不需要 export,也不需要再写 declare。
  const a: string = ''
}

A.a

// module 就是 namespace
declare namespace B {
  const b: string = ''
}

declare const $:(selector: string) => {
  width(v: number): void
}

$('foo').width(100)

// 接口同名自动合并,函数和命名空间同名自动合并,命名空间同名自动合并。
declare function $ (selector: string): {
  width(v: number): void
}
declare namespace $ {
  namespace fn {
    function extend(): void
  }
}

$.fn.extend() // Ok