2017-02-18 79 views
1

我在typescript中創建一個包,並使用tsc工具生成聲明文件,但是當我嘗試從另一個項目中導入此包時,類型定義不會自動加載,並且出現類型錯誤。我怎樣才能實現這個問題?我知道有些模塊不需要安裝或指定使用類型,但我找不到如何執行此操作。TypeScript包創建聲明文件

編輯 - 詳細信息:我使用tsc --declarations命令生成聲明文件,它們全部直接用js文件進入編譯目錄。我在我的package.json中有{"types": "./build/index.d.ts", "typescript.tsdk": "./build"},但它似乎沒有任何效果。下面是一些例子:

編譯/ index.d.ts

import Network from './network'; 
import Queue from './queue'; 
export { Queue, Network, Jobs }; 

編譯/網絡/ index.d.ts

import Address from './address'; 
import Socket from './socket'; 
import Packet from './packet'; 
export { Address, Socket, Packet }; 
declare var _default: { 
    Address: typeof Address; 
    Socket: typeof Socket; 
    Packet: typeof Packet; 
}; 
export default _default; 

編譯/網絡/ packet.dt.ts

export default class Packet { 
    private params; 
    static fromString(str: string): Packet; 
    toString(): string; 
} 
+0

請添加詳細信息,d.ts文件的外觀,放置位置,如何引用它 –

+0

好的,我編輯了我的問題並添加了一些聲明文件的示例。 –

+0

好的,你如何參考他們?你會得到什麼錯誤? –

回答

1

由於您使用默認導出,並且您的軟件包位於node_modules之內,因此可以按以下方式導入它:

import Socket from "core/build/network/socket"; 

class Abc extends Socket { 
    constructor() { 
     super(); 

     this.connect('address'); 
    } 
} 

let s = new Socket(); 
s.connect('address');