angular - Importarea unei funcții JavaScript în TypeScript și AngularJS 2
Am un plugin care funcționează cu JavaScript. Vreau să folosesc funcția în interiorul componentului meu TypeScript în AngularJS2. Am încercat diferite metode fără succes.
@angular/cli: 1.0.0-rc.0, node: 7.7.2, @angular/core: 2.4.9
Să presupunem că vreau să folosesc următoarea funcție cube.js:
function cube(x) {
return x * x * x;
}
const foo = Math.PI + Math.SQRT2;
export default { cube, foo };
Folosind abordarea cu definiție de tip, creez cube.d.ts astfel:
interface Cube {
cube(x:number):number;
}
export default Cube;
În componenta mea, am importat funcția astfel:
import Cube from './cube';
...
public myCube:Cube;
console.log(myCube.cube(3));
Dar îmi dă următoarea eroare:
Eroare în :0:0 cauzată de: Nu se poate citi proprietatea 'cube' a valorii nedefinite TypeError: Nu se poate citi proprietatea 'cube' a valorii nedefinite la HComponent.webpackJsonp
în tsconfig.json, allowJS este adevărat (editat: "allowJs": true). @type module a fost deja instalat. Tot nu se poate citi o funcție JS simplă.
Vreo idee?
Răspuns #1
Am găsit răspunsul.
Fișierul meu cube.js:
"use strict";
class Cube {
cube(x) {
return x * x * x;
}
}
export default Cube;
Fișierul meu cube.d.ts
export default class Cube {
cube(x: number): number;
}
În componenta ts, am:
/// <reference path="./cube.d.ts" />
import Cube from './cube';
...
const my = new Cube();
console.log(my.cube(10));
Răspunsul #2
Aceasta funcționează pentru mine
import model = require('../../model');
Și în componenta mea
model.functionName();
