I am having a problem with the following code.
What is this basically supposed to do. It should download and parse the given JSON file. And in RequestListender, it should show the ID and the string Hello , which is returned by the ToString() method in Product.ts. If the tProduct.Id icon tProduct.Id displayed correctly, the tProduct.ToString() method fails with the error indicated below.
Thank you very much in advance.
Error message:
TypeError: tProduct.ToString is not a function. (In 'tProduct.ToString()', 'tProduct.ToString' is undefined)
File: Test.ts
var currentProduct = null as pvis.Product; function runTest(path) { var request = new XMLHttpRequest(); request.onload = loadRequestListener; request.open("get", path, true); request.send(); } function loadRequestListener () { var tProduct : pvis.Product = JSON.parse(this.responseText); if (tProduct.Id) { currentProduct = tProduct; alert('loaded with Id: ' + tProduct.Id ); alert('loaded with Content: ' + tProduct.ToString() ); } else { alert('product failed to load'); } }
Product.ts File
module pvis { export class Product { Id: string; ToString():string { return 'Hello'; } } }
HTML part:
<body onload="runTest('assets/products/json/A379N.json')">
Compiled Javascript:
var pvis; (function (pvis) { var Product = (function () { function Product() { } Product.prototype.ToString = function () { return 'Hello'; }; return Product; })(); pvis.Product = Product; })(pvis || (pvis = {})); var currentProduct = null; function runTest(path) { var request = new XMLHttpRequest(); request.onload = loadRequestListener; request.open("get", path, true); request.send(); } function loadRequestListener() { var tProduct = JSON.parse(this.responseText); if (tProduct.Id) { currentProduct = tProduct; alert('loaded with Id: ' + tProduct.Id); alert('loaded with Content: ' + tProduct.ToString()); } else { alert('product failed to load'); } }
tsconfig.json (I'm not sure if this is relevant):
{ "compilerOptions": { "target": "ES5", "removeComments": true, "preserveConstEnums": true, "out": "js/main.js", "sourceMap": true }, "files": [ "src/Test.ts" ] }
source share