2016-12-22 2 views
1

J'ai un module simple. Utilisez pour vérifier le type de variable.Comment utiliser la syntaxe es6 pour importer un module fonction dans Typescript

index.js

'use strict'; 
var typeOf = function (variable) { 
    return ({}).toString.call(variable).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); 
}; 
module.exports = typeOf; 

index.d.ts

export default typeOf; 
declare function typeOf(value:any):string; 

Voici comment je l'utilise.

import typeOf from 'lc-type-of'; 
typeOf(value); 

Mais le code ne fonctionne pas comme prévu. La fonction typeOf est sortie erreur non définie. Est-ce que je manque quelque chose?

Répondre

2

lors de l'exportation comme nœud avec Javascript:

module.exports = something; 

dactylographiée importer comme il:

import * as something from "./something" 

et dans la définition

// Tell typescript about the signature of the function you want to export 
declare const something:()=> void ; 

// tell typescript how to import it  
declare module something { 
     // Module does Nothing , it simply tells about it's existence 
} 

// Export 
export = something; 
+0

je changé comme vous avez dit. Mais le compilateur dit '' 'erreur TS2349: Impossible d'invoquer une expression dont le type manque d'une signature d'appel. Tapez 'typeof "E:/project/node_modules/lc-type-of/index"' n'a pas de signatures d'appel compatibles.''' – JamesYin

+0

Après avoir ajouté votre code d'ajout. Ça fonctionne maintenant! Un compagnon formidable! Je vous remercie. – JamesYin

+0

Puis-je vous demander pourquoi je dois déclarer un module? C'est juste une fonction. – JamesYin