Skip to content
On this page

TypeScript 工具类型

Rubic 本身就是用 TypeScript 编写的,自带了类型声明文件,开箱即用。

某些插件会为所有组件都拓展全局可用的属性。举例来说,我们可能为了请求数据而安装了 ctx.$http,或者为了国际化而安装了 ctx.$translate。为了使 TypeScript 更好地支持这个行为,Rubic 为页面和组件分别暴露了被设计为可以通过 TypeScript 模块扩展来扩展的接口:

PageCustomProperties

用于增强 页面 实例类型以支持自定义全局属性。

  • 示例:
ts
export {}

declare module 'rubic' {
  interface PageCustomProperties {
    $http: typeof MyFetch
    $translate: (key: string) => string
  }
}

ComponentCustomProperties

用于增强 组件 实例类型以支持自定义全局属性。

  • 示例:
ts
export {}

declare module 'rubic' {
  interface ComponentCustomProperties {
    $http: typeof MyFetch
    $translate: (key: string) => string
  }
}

TIP

类型扩展必须被放置在一个模块 .ts 或 .d.ts 文件中。查看类型扩展指南了解更多细节

Released under the MIT License.