viết định nghĩa loại .d.ts typecript xuống thư mục node_module

Apr 01 2019

Tôi cần viết tệp .d.ts cho thư viện bên ngoài (npm). Tôi đang sử dụng bản đánh máy 3.

Hàng nhập khẩu tôi cần là:

import fakedb from 'fake-indexeddb'; //sorted
// second import I would like:
import dbKeyRange from 'fake-indexeddb/lib/FDBKeyRange'

từ các loại / fake-indexeddb.d.ts:

export = index;
declare const index: IDBFactory;

Làm cách nào để viết tệp cho lần nhập thứ hai từ thư viện mà tôi muốn ( fake-indexeddb/lib/FDBKeyRange- an IDBKeyRange)?

Chỉnh sửa trong khi câu trả lời của Juraj Kocan về mặt logic là những gì tôi phải đặt trong tệp .d.ts, câu hỏi là tôi phải đặt tên tệp là gì để trình gỡ lỗi và trình chuyển đổi tìm thấy tệp khi tôi viết import dbKeyRange from 'fake-indexeddb/lib/FDBKeyRange'- rõ ràng là nó như thế nào. tìm tệp loại / fake-indexeddb.d.ts .

Trả lời

JurajKocan Apr 01 2019 at 21:24

thêm toàn bộ tên vào khai báo

declare module 'fake-indexeddb/lib/FDBKeyRange' {
  class dbKeyRange {}
  export default dbKeyRange
}

biên tập

có một số quy tắc cho khai báo. thêm loại rootes trong tsconfig

 "typeRoots": [
  "./node_modules/@types",
  "./whateveryouwant/types"
],

hoặc con đường khác nó không quan trọng. Chỉ cần được xác định trong cấu hình ts sau đó thêm thư mục với tên của mô-đun của bạn. trong thư mục này thêm index.d.ts

--src
  --types
    --fake-indexeddb
      --index.d.ts
Brent Apr 02 2019 at 03:47

Cuối cùng tôi đã ánh xạ đường dẫn thư mục trong thư mục loại của mình và điều đó đã hoạt động. đường dẫn cuối cùng đến tệp định nghĩa là:

types/fake-indexeddb/lib/FDBKeyRange.d.ts

với định nghĩa trong tệp đó.