如何釋出TypeScript的宣告檔案.d.ts
最近為Dynamic Web TWAIN的JavaScript介面編寫了一份.d.ts檔案。這個檔案就像C/C++用.h檔案。好處就是在使用TypeScript開發的時候,可以提供IntelliSense智慧提示。開發者可以直接看到介面的定義。
使用TypeSearch可以找到已經發布的TypeScript宣告檔案,比如dwt。安裝方法:
npm install --save @types/dwt
建立一個.d.ts檔案很簡單,只需要安裝官網的方法。那麼如何釋出這個檔案?如果你已經有一個js庫,只需要把.d.ts檔案放到同樣的目錄裡,然後通過npm publish釋出就可以了。但是如果想要釋出到統一的types下,就需要把檔案提交到
通過GitHub提交.d.ts檔案
Fork一份DefinitelyTyped原始碼,並clone到本地。比如我的:
git clone https://github.com/dynamsoft-dwt/DefinitelyTyped.git
在types目錄下新建一個包目錄,幷包含四個檔案:
types\dwt:
|-- dwt-tests.ts
|-- index.d.ts
|-- tsconfig.json
|-- tslint.json
dwt-tests.ts裡寫一些測試程式碼。
tsconfig.json是TypeScript的配置檔案。和其它的包比較,只需要修改files:
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": false,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit" : true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"dwt-tests.ts"
]
}
tslint.json裡需要寫一些規則,具體可以參考TSLint core rules。這是我寫的:
{
"extends": "dtslint/dt.json",
"rules": {
"max-line-length": [false],
"no-trailing-whitespace": false,
"space-before-function-paren": false,
"only-arrow-functions": [false]
}
}
接下來在根目錄執行指令碼:
npm run test
npm run lint
如果執行lint的時候發生問題,可以修改.d.ts檔案,也可以修改規則來遮蔽問題。比如max-line-length不符合預設的長度,如果你不想修改長度,就設定成false。
沒有問題了就把程式碼上傳到github,並建立一個pull request。這個時候會出來一個提交模版,你需要根據提示勾選模版選項。
提交之後travis-ci會自動檢測所有的檔案,如果有問題,你需要修改之後重新提交。管理員可能會和你溝通提交的問題。所有問題都修復之後,管理員會把你的程式碼合併到主程式碼庫中。接下來就等待管理員釋出,大概一天的時間。