2016-12-22 2 views
1

У меня есть простой модуль. Используйте для проверки типа переменной.Как использовать синтаксис es6 для импорта функционального модуля в Typcript

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; 

Вот как я использую его.

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

Но код не работает должным образом. Функция typeOf вышла из неопределенной ошибки. Я что-то пропустил?

ответ

2

при экспорте узла как с помощью Javascript:

module.exports = something; 

в машинописном импортировать это нравится:

import * as something from "./something" 

и в определении

// 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

я изменился, как вы сказали. Но компилятор сказал '' 'ошибка TS2349: не могу вызвать выражение, тип которого не имеет сигнатуры вызова. Тип 'typeof' E:/project/node_modules/lc-type-of/index "'не имеет совместимых сигнатур вызовов .''' – JamesYin

+0

После добавления кода добавления. Он работает сейчас! Удивительный помощник! Спасибо. – JamesYin

+0

Могу ли я спросить вас, почему я должен объявить модуль? Это просто функция. – JamesYin