typescript - PowerBI 视觉工具 d3 导入

标签 typescript d3.js powerbi

我使用 PowerBI 的可视化工具 (https://github.com/Microsoft/PowerBI-visuals-tools) 创建了一个新项目,然后我手动安装了 d3 (@^3.5.5) 及其类型定义 (@types/d3@^3.5.5)。令我困惑的是 src 文件夹的 visual.ts 里面,我可以在没有任何导入的情况下使用 d3,有人可以解释为什么吗?

module powerbi.extensibility.visual {
    "use strict";
    export class Visuall implements IVisual {
        private target: HTMLElement;
        private updateCount: number;
        private settings: VisualSettings;

        constructor(options: VisualConstructorOptions) {
            console.log('Visual constructor', options);
            this.target = options.element;
            this.updateCount = 0;
        }

        public update(options: VisualUpdateOptions) {
            this.settings = Visual.parseSettings(options && options.dataViews && options.dataViews[0]);
            console.log('Visual update', options);
            this.target.innerHTML = `<p>Update count: <em>${(this.updateCount++)}</em></p>`;
            console.log(d3); // no error whatsoever
        }


        private static parseSettings(dataView: DataView): VisualSettings {
            return VisualSettings.parse(dataView) as VisualSettings;
        }

        /**
         * This function gets called for each of the objects defined in the capabilities files and allows you to select which of the
         * objects and properties you want to expose to the users in the property pane.
         *
         */
        public enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstance[] | VisualObjectInstanceEnumerationObject {
            return VisualSettings.enumerateObjectInstances(this.settings || VisualSettings.getDefault(), options);
        }
    }
}

最佳答案

在这个问题上,我当然不是以任何权威的身份发言,但 Power BI Visuals API 团队所做的似乎是将将文件链接在一起的责任转移到了构建过程中。如果您查看 pbiviz.json 文件,则有一个“externalJS”属性,它应该包含您将使用的任何 js 引用。由于它们在那里被引用,我相信这是为了排除您在 typescript 文件中执行此操作的需要。

关于typescript - PowerBI 视觉工具 d3 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45432800/

相关文章:

typescript - 有没有办法让这些通用函数在 typescript 中工作?

javascript - d3.js 和 d3.express 有什么区别

sql-server - 通过直接查询连接到 Azure 专用 SQL 池的 Power BI 报表性能缓慢

SQL 到 powerBI 表达式?

powerbi - 在power query language(M语言)中,我们如何手动将自定义 "value"和 "table"列添加到表中?

angular - 在ngrx效果中实现catchError后全局ErrorHandler不起作用

javascript - Angular 5 DOM 双向绑定(bind)输入数字和 slider

angularjs - 如何使用具有构造函数参数的 TypeScript 类定义 AngularJS 工厂

javascript - D3 v3 附加复选框?

d3.js - d3 - 从数据点到轴的虚线(见dimplejs.org)