Skip to content

Typescript 类型

描述

Danmaku 的 TypeScript 类型声明很齐全,所以当你在 TypeScript 中使用时,你会得到很好的类型提示,这对于插件化系统来说会非常的友好,甚至可以说是不可或缺的。

声明弹幕内容类型

当你在各种钩子里面拿到的 danmaku 实例类型时,其弹幕内容的类型默认为 unknown,但是你可以在初始化的时候传入范型来约束。

ts
import { create } from 'danmu';

const manager = create<{ content: string; img: string }>({
  $beforeMove(danmaku) {
    // 你可以看到 data 类型为 { content: string, img: string }
    danmaku.data;
  },
});

statuses 传递类型

由于 manager.statuses 不会在内核中有任何工作,他仅仅是提供一个普通对象给用户记录状态使用的,所以默认类型为 Record<PropertyKey, unknown>,你也可以传递范型来改变他,具体的实例可以参考我们的 demo

ts
import { create } from 'danmu';

const manager = create<string, { background: string }>();

// 你可以看到 statuses 类型为 { background: string }
manager.statuses;

默认导出的类型声明

以下是我们默认导出的类型,可以帮助你在业务代码编写中或者插件编写中提供一些帮助。

ts
// 以下这些类型你都可以使用
import type {
  Mode,
  StyleKey,
  Position,
  PushOptions,
  PushFlexOptions,
  Location,
  ValueType,
  Direction,
  Danmaku,
  DanmakuType,
  DanmakuPlugin,
  ManagerPlugin,
  ManagerOptions,
  CreateOption,
} from 'danmu';

Released under the MIT License.