[Typescript] OVerride external library Types

import { getAnimatingState } from "fake-animation-lib";
import { Equal, Expect } from "../helpers/type-utils";

const animatingState = getAnimatingState();

type tests = [
  Expect<
    Equal<
      typeof animatingState,
      "before-animation" | "animating" | "after-animation"
    >
  >
];

 

Current the function getAnimatingStatereturn is just string type. And it is coming from a extranal library fake-animation-lib.

export const getAnimatingState = (): string => {
  if (Math.random() > 0.5) {
    return "before-animation";
  }

  if (Math.random() > 0.5) {
    return "animating";
  }

  return "after-animation";
};

 

The way to override is by create a new *.d.ts file, you name name the file as you want, but need to keep .d.ts

// the new *.d.ts will override the previous declarion file
declare module "fake-animation-lib" {
  export type AnimatingState = "before-animation" | "animating" | "after-animation"
  export function getAnimatingState(): AnimatingState;
}

 

posted @   Zhentiw  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2022-02-23 [Whole Web] SQL INJECTION
2022-02-23 [Whole Web] CROSS SITE SCRIPTING (XSS)
2019-02-23 [Functional Programming] Pointy Functor Factory
2019-02-23 [Functional Programming] Async IO Functor
2017-02-23 [HTML5] Focus management using CSS, HTML, and JavaScript
2017-02-23 [TypeScript] Increase TypeScript's type safety with noImplicitAny
2017-02-23 [React] displayName for stateless component
点击右上角即可分享
微信分享提示