2017-09-04 4 views
0

J'essaie d'importer une bibliothèque JavaScript externe sans typage ni package installable. Le plugin est: https://github.com/amw/jpeg_camera/tree/master/dist/jpeg_camera_no_flash.js. Je veux importer trois classes de ce plugin: JpegCamera, JpegCameraHTML5 et Snapshot. Avec l'aide de certains tutoriels, j'ai été capable d'exporter les trois classes avec leurs interfaces dans un fichier .d.ts. Le fichier .d.ts ressemble à:Importer des classes à partir d'une bibliothèque Javascript vers Typescript

declare module Camera {}
export class JpegCamera {...}
export class JpegCameraHTML5 {...}
export class Snapshot {...}

Maintenant, je ne sais pas comment créer un lien entre le fichier source de plug-in (.js), mon propre fichier .d.ts et le fichier dactylographiée où je veux importer ces trois classes . J'ai essayé
import * as X from "path/to/d.ts
mais cela ne fonctionnera pas. Merci :)

Répondre

0

Je ne sais pas dans quel contexte vous exécutez votre application, mais en essayant localement je reçu le message: ReferenceError: document is not defined chargement avec la syntaxe: import * as camera from './jpeg_camera_no_flash'

Vous ne devriez pas avoir ce message si vous êtes exécuter votre script via un navigateur.

J'ai téléchargé le fichier physiquement dans mon dossier de projet.

0

Vous pouvez essayer de faire ceci:
/// <reference path="path to the .d.ts" />
ou vous pouvez exporter chaque classe en utilisant default, de sorte que vous pouvez les importer comme ceci: import className from './file-path'

+0

Vous voulez dire dans le fichier de d.ts faire somthing comme 'l'exportation classe par défaut Main {class JpegCamera {} ...} ' –

+0

non. Quelque chose comme ça 'exporter la classe par défaut JpegCamera {...}' –

+0

Il ne laissera pas utiliser plusieurs par défaut dans le même fichier. Peut-être qu'une classe de wrapper externe qui utilise default est ce que vous vouliez dire. –