2016-08-04 52 views
0

对不起,但我很迷茫。其实我有这个:使用由npm安装的javascript库

import * as angular from 'angular'; 
import 'ts-angular-jsonapi'; 

并且不会返回任何错误。但是,当我做到这一点

import * as angular from 'angular'; 
import * as jsonapi from 'ts-angular-jsonapi'; 

我得到这个错误:

ERROR in ./src/index.ts 
(14,23): error TS2307: Cannot find module 'ts-angular-jsonapi'. 

需要什么样的变化我做ts-angular-jsonapi库修正这一错误。

更多信息:我需要做到这一点becouse我需要做这样的事情:

class myresource extend jsonapi.resource { 

} 
+0

更改'/ src/index.ts'不依赖于'ts-angular-jsonapi'的存在吗? –

+0

对不起,但我不明白你的评论:( – pablorsk

+0

好吧,看起来'./src/index.ts'预计'ts-angular-jsonapi'变量存在。所以如果你改变'import 'ts-angular-jsonapi';''将'import *'作为jsonapi从'ts-angular-jsonapi';',它不会再工作了,也许你只需要将'ts-angular-jsonapi'改为'jsonapi' –

回答

0

我找到了解决办法。当你写一个.TS文件时,你不能导入任何.JS文件。你需要使用require()。在代码:

// some_file.ts 
import * as angular from 'angular'; 
var jsonapi = require('ts-angular-jsonapi'); // .js library 

但是,如果你正在寻找打字稿节点模块的最佳和正确的解决方案,我建立一个simple example on github。通过这个例子,你可以这样做:

import * as animal_module from 'animal_module'; 

class Snake extends animal_module.Animal { 
    constructor(name: string) { super(name); } 
} 

let sam = new Snake('Sammy the Python'); 
+1

这实际上是不正确的,在'tsconfig.json'中启用'compilerOptions.allowJs'设置。 –

-1

你为什么不尝试 import angular from 'angular'; import jsonapi from 'ts-angular-jsonapi';

+0

''angular'from'angular''表示'Module''angular''没有默认导出 – pablorsk