2016-08-04 118 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