2016-08-11 79 views
0

我試圖使用沒有流類型的第三方庫。如果我從sjcl.random.randomWords(2, 5)開始流量告訴我它找不到random爲什麼不流動看到.js.flow文件上的.random屬性

sjcl.js.flow:

// @flow 

declare module sjcl { 
    declare type SjclType = { 
     random: { 
      randomWords: (nwords: number, paranoia: number) => Array<number>, 
     } 
    } 

    declare module.exports: SjclType; 
} 

回答

2

今天上午&說着給@ ASA-艾爾斯在IRC上記錄爲後人的答案。

在這個例子中,sjcl.js.flow不是一個lib文件。這是一個位於sjcl.js旁邊的文件。 Flow會看到.flow擴展名,並且在有人需要sjcl時使用導出類型sjcl.js.flow而不是導出類型sjcl.js

任何非lib文件都可以聲明它導出的類型。如果要聲明CommonJS導出,則可以使用語法declare module.exports: Type。如果它想要聲明ES6導出,則可以使用語法declare export

因此,例如有問題,正確的語法如下:

/* @flow */ 

type SjclType = { 
    random: { 
     randomWords: (nwords: number, paranoia: number) => Array<number>, 
    } 
} 

declare module.exports: SjclType; 
相關問題