Closed Spoonail-Iroiro closed 11 months ago
今も
import { Maginai } from 'maginai/lib/modules/maginai.js';
declare global {
var maginai: Maginai;
}
で可能
わかりにくいのでpackage.json
でsubpath exportを以下のように定義し
"main": "",
"types": "./lib/loader.d.ts",
"exports": {
".": "./lib/loader.d.ts",
"./*": "./lib/modules/*"
},
import { Maginai } from 'maginai/maginai.js'
でできるようにしたい
ただし環境によってはMaginai
のimportでmaginai/lib/module...
の方がサジェストされたりする
typescript 5.2.2下のjsファイルで確認(ESNext
/ESNext
/Node16
)
ただし環境によってはMaginaiのimportでmaginai/lib/module...の方がサジェストされたりする typescript 5.2.2下のjsファイルで確認(ESNext/ESNext/Node16)
moduleResolution
がNode16
かBundler
でなかったり、そうであっても何かの要因でプロジェクトのtsconfig.json
が反映されないファイルに対しては上記のようになる(subpath exportの無視)になるので注意
(include
の対象か、jsファイルの場合"allowJs": true
になっているか等)
※#5 が完了してからにしたい
package.jsonのexports設定により
Maginai
クラスをimportできるようにするimport {Maginai} from 'maginai/class'
あとは利用側が以下の型定義を用意すればOK