如何在typescript 2.0中使用d3-tip的输入法

Aks*_*hot 10 typing typescript definitelytyped typescript-typings typescript2.0

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

使用Typescript 2.0,我添加了d3-tip如下的输入:

npm install @types/d3-tip --save
Run Code Online (Sandbox Code Playgroud)

它显示在我的package.json中:

"dependencies": {
  "@types/d3": "^4.7.0",
  "@types/d3-tip": "^3.5.4",
}
Run Code Online (Sandbox Code Playgroud)

index.d.ts 对于d3-tip看起来像这样:

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;
}
Run Code Online (Sandbox Code Playgroud)

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

import * as tip from 'd3-tip';   OR
import * from 'd3-tip';          OR
import { tip } from 'd3-tip';
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用,我也没有任何智能感知d3.tip().

我如何使其工作?谢谢.

les*_*syk 1

导入,这对我有用:

import d3Tip from "d3-tip";
const tip = d3Tip();
Run Code Online (Sandbox Code Playgroud)

然而,这里对此有一些小讨论。

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