1. 程式人生 > >如何釋出TypeScript的宣告檔案.d.ts

如何釋出TypeScript的宣告檔案.d.ts

最近為Dynamic Web TWAIN的JavaScript介面編寫了一份.d.ts檔案。這個檔案就像C/C++用.h檔案。好處就是在使用TypeScript開發的時候,可以提供IntelliSense智慧提示。開發者可以直接看到介面的定義。

use TypeScript declaration

使用TypeSearch可以找到已經發布的TypeScript宣告檔案,比如dwt。安裝方法:

npm install --save @types/dwt

建立一個.d.ts檔案很簡單,只需要安裝官網的方法。那麼如何釋出這個檔案?如果你已經有一個js庫,只需要把.d.ts檔案放到同樣的目錄裡,然後通過npm publish釋出就可以了。但是如果想要釋出到統一的types下,就需要把檔案提交到

DefinitelyTyped

通過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會自動檢測所有的檔案,如果有問題,你需要修改之後重新提交。管理員可能會和你溝通提交的問題。所有問題都修復之後,管理員會把你的程式碼合併到主程式碼庫中。接下來就等待管理員釋出,大概一天的時間。