angular - JavaScript ფუნქციის იმპორტი TypeScript-ში და AngularJS 2-ში
მე მაქვს პლაგინი, რომელიც მუშაობს JavaScript-თან ერთად. მე მინდა გამოვიყენო ფუნქცია ჩემს TypeScript კომპონენტში AngularJS2-ში. მე შევიყენე სხვადასხვა გზები, მაგრამ უშედეგოდ.
@angular/cli: 1.0.0-rc.0, node: 7.7.2, @angular/core: 2.4.9
მიუთითეთ, რომ მინდა გამოვიყენო შემდეგი ფუნქცია cube.js:
function cube(x) {
return x * x * x;
}
const foo = Math.PI + Math.SQRT2;
export default { cube, foo };
ტიპის დეკლარაციის მიდგომის გამოყენებით, მე ვქმნი cube.d.ts შემდეგნაირად:
interface Cube {
cube(x:number):number;
}
export default Cube;
ჩემ კომპონენტში, მე ფუნქცია შემდეგნაირად ავამოტივირე:
import Cube from './cube';
...
public myCube:Cube;
console.log(myCube.cube(3));
მაგრამ ეს მაძლევს შემდეგ შეცდომას:
შეცდომა :0:0-ში გამოწვეული მიზეზით: შეუძლებელია წაიკითხოთ თვისება 'cube' განსაზღვრული არ არის ტიპის შეცდომა: შეუძლებელია წაიკითხოთ თვისება 'cube' განსაზღვრული არ არის HComponent.webpackJsonp-ში
tsconfig.json-ში, allowJS არის true (დაპრანჭული: "allowJs": true). @type module უკვე დაინსტალირებულია. ჯერაც ვერ წავუკითხე მარტივი JS ფუნქცია.
რა იდეა?
პასუხი #1
მე ვიპოვე პასუხი.
ჩემი cube.js ფაილი:
"use strict";
class Cube {
cube(x) {
return x * x * x;
}
}
export default Cube;
ჩემი cube.d.ts ფაილი
export default class Cube {
cube(x: number): number;
}
TS კომპონენტში მე მაქვს:
/// <reference path="./cube.d.ts" />
import Cube from './cube';
...
const my = new Cube();
console.log(my.cube(10));
პასუხი #2
ეს ჩემთვის ვარგისია
import model = require('../../model');
და ჩემს კომპონენტში
model.functionName();
