Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Dear Community,
I am currently having an issue with compiling a custom visual. I have intorduced a custom object (myCustomObj) with a boolean property (myprop). I am following the tutorial here: https://blogs.msdn.microsoft.com/tsmatsuz/2016/09/27/power-bi-custom-visuals-programming/
I am getting the error "TYPESCRIPT /src/visual.ts : (44,13) Type 'string | number | boolean | Date | Fill | FillRule | ISemanticFilter | DefaultValueDefinition | I...' is not assignable to type 'boo
lean'.
Type 'string' is not assignable to type 'boolean'."
I have no idea what the issue could be, it says there is an error with the following line in my update function:
this.myVisualProp = options.dataViews[0].metadata.objects["myCustomObj"]["myprop"];
Yet when I put in a debugger and tried typeof(options.dataViews[0].metadata.objects["myCustomObj"]["myprop"]) in the console it returned "boolean". If I am doing something wrong please let me know, my full code is below: visual.ts, capabilities.json
module powerbi.extensibility.visual { export class Visual implements IVisual { private target: HTMLElement; private myVisualProp: boolean; constructor(options: VisualConstructorOptions) { var captionArea = document.createElement("div"); captionArea.innerHTML = "This is a test chart"; options.element.appendChild(captionArea); this.target = document.createElement("div"); options.element.appendChild(this.target); this.myVisualProp = false; } public update(options: VisualUpdateOptions) { this.myVisualProp = options.dataViews[0].metadata.objects["myCustomObj"]["myprop"]; this.target.innerHTML = "Custom Prop is " + this.myVisualProp; } public enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration { let objectName = options.objectName; let objectEnumeration: VisualObjectInstance[] = []; switch (objectName) { case 'myCustomObj': objectEnumeration.push({ objectName: objectName, properties: { myprop: this.myVisualProp, }, selector: null }); break; }; return objectEnumeration; } public destroy(): void { //TODO: perform any cleanup tasks here } } }
{ "dataRoles": [ { "displayName": "Category Data", "name": "category", "kind": "Grouping" }, { "displayName": "Measure Data", "name": "measure", "kind": "Measure" }, { "displayName": "Grouping", "name": "myGroup", "kind": "Grouping" } ], "dataViewMappings": [ { "table": { "rows": { "select": [ {"for": {"in": "myCategory"}}, {"for": {"in": "measure"}} ] } } } ], "objects": { "myCustomObj": { "displayName": "Test Object", "properties": { "myprop": { "displayName": "Test Property", "type": { "bool": true } } } } } }
Solved! Go to Solution.
You may add Type assertions to workaround this issue.
You may add Type assertions to workaround this issue.
User | Count |
---|---|
17 | |
11 | |
5 | |
4 | |
3 |