typescript - PowerBI-visuals-verktyg d3 import
Jag skapade ett nytt projekt med hjälp av PowerBI:s visuella verktyg (https://github.com/Microsoft/PowerBI-visuals-tools) och installerade sedan manuellt d3 (@^3.5.5) och dess typdefinitioner (@types/d3@^3.5.5). Det som har förbryllat mig är att inuti visual.ts i src-mappen kan jag använda d3 utan några imports, finns det någon som kan förklara varför?
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);
}
}
}
Svar #1
Jag talar naturligtvis inte som någon form av auktoritet i frågan, men det verkar som att det Power BI Visuals API-teamet har gjort är att flytta ansvaret för att länka filer till byggprocessen. Om du tittar i filen pbiviz.json finns det en egenskap för "externalJS" som ska innehålla alla js-referenser du kommer att använda. Eftersom de refereras där tror jag att det är tänkt att förhindra att du behöver göra det i dina TypeScript-filer.