2016-09-26 123 views
2

我只是前端Web DEVELOPPEMENT(JavaScript的地獄與所有這些包管理器/捆綁)開始,我嘗試使用打字稿+ browsify打字稿進口與節點

所以我創建了一個index.ts文件並下載uniq模塊(使用NPM)只是爲了測試TS文件編譯

這裏是我的index.ts

/// <reference path="node_modules/uniq/uniq.d.ts" /> 
import {unique} from "uniq"; 

var data = [1, 2, 2, 3, 4, 5, 5, 5, 6]; 

console.log(unique(data)); 

uniq.d.ts

// Type definitions for uniq 
// Project: https://www.npmjs.com/package/uniq 
// Definitions by: Hans Windhoff <https://github.com/hansrwindhoff> 
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped 


interface Uniq{ 
    <T>(ip:Array<T>): Array<T>; 
} 

declare var uniq :Uniq; 

declare module "uniq" { 
export = uniq; 
} 

目錄結構

. 
├── entry.ts 
├── node_modules 
│   └── uniq 
│    ├── LICENSE 
│    ├── package.json 
│    ├── README.md 
│    ├── test 
│    │   └── test.js 
│    ├── uniq.d.ts 
│    └── uniq.ts 
└── package.json 

但是當我嘗試編譯index.ts我得到這個錯誤:

error TS2688: Cannot find type definition file for 'uniq'. 
+0

您是否爲它安裝了'typings'定義?您目前的參考指向typings文件夾中的定義文件,但我沒有在您的目錄結構中看到該文件。 –

+0

@DaveV修復錯誤,我只是驗證d.ts文件不需要與.js文件在同一文件夾中,仍然無法工作 – karim

回答

2

第一

你可能有路徑錯誤:

/// <reference path="node_modules/uniq/uniq.d.ts" /> 

也許../../node_modules/uniq/uniq.d.ts。而不是像這樣britle路徑,請使用tsconfig.jsonhttps://basarat.gitbooks.io/typescript/content/docs/project/tsconfig.html

基礎上.d.ts你表現出你的進口import {unique} from "uniq";也是錯誤的。它應該是import unique = require('uniq'),因爲它只有一個函數導出。首先修復後,您會收到有關此錯誤的信息。享受