如何在 typescript 2.0 中使用 d3-tip 的类型

Posted

技术标签:

【中文标题】如何在 typescript 2.0 中使用 d3-tip 的类型【英文标题】:How to use typings for d3-tip in typescript 2.0 【发布时间】:2017-09-06 02:53:15 【问题描述】:

我想使用d3-tip 库在我的图表中添加工具提示。

使用 Typescript 2.0,我为d3-tip 添加了如下类型:

npm install @types/d3-tip --save

它显示在我的 package.json 中:

"dependencies": 
  "@types/d3": "^4.7.0",
  "@types/d3-tip": "^3.5.4",

d3-tip 的index.d.ts 如下所示:

import Primitive from "d3";

declare module "d3" 
    type TooltipDirection = ("n" | "s" | "e" | "w" | "nw" | "ne" | "sw" | "se");
    interface Tooltip 
        hide(): Tooltip;
        show(): Tooltip;
        destroy(): Tooltip;
        ....
    
    export function tip(): Tooltip;

我的问题是,我现在如何在我的代码中使用这个/导入?我尝试添加以下内容:

import * as tip from 'd3-tip';   OR
import * from 'd3-tip';          OR
import  tip  from 'd3-tip';

但它们都不起作用,而且我在 d3.tip() 上没有任何智能感知。

如何让它发挥作用?谢谢。

【问题讨论】:

嗨,你有什么发现吗? 对不起,没有智能感知就必须使用它。 你的意思是它只是通过忽略警告来工作?编译了吗? 【参考方案1】:

导入,对我有用:

import d3Tip from "d3-tip";
const tip = d3Tip();

但是,关于这个here 的讨论很少。

【讨论】:

它不起作用。首先智能感知在导入语句中为 d3Tip 提供了一个红色下划线。其次,当我发出 ng-serve 它告诉 ERROR in src/app/app.component.ts(5,8): error TS1192: Module '"/Users/xyz/demo-proj/node_modules/@types/d3-tip /index"' 没有默认导出。 ℹ「wdm」:编译失败。

以上是关于如何在 typescript 2.0 中使用 d3-tip 的类型的主要内容,如果未能解决你的问题,请参考以下文章

如何将 D3 JavaScript 中的“this”翻译成 TypeScript?

使用 d3.js 和 TypeScript 绘制饼图时出现编译错误

如何在解析模块时阻止 typescript 2.0 遍历所有父目录?

如何获得 Vue.js 2.0 类型的 TypeScript 与 Visual Studio 一起使用?

“Angular 2.0 for TypeScript”(alpha)动画是如何工作的?

在 Typescript 2.0 中使用 @types 类型定义