web-dev-qa-db-ja.com

Typescript:JavaScriptファイルからクラスをインポートする方法は?

私はしたいと思います :

  • クラスを定義するjsファイルをインポートします:./myClass/index.js
  • MyClassのパブリックメソッドをどこかで宣言します(index.tsまたは指定された宣言ファイルでは、方法がわかりません)
  • クラスを公開するTypeScriptファイルがある:index.ts

何かのようなもの

// index.ts
import MyClass from './myClass' // or require, or anything that would work
export {MyClass}

そして

// myClass/index.js
export default class MyClass {
  ...
}

./myClass/indexをインポートしてもモジュールが見つからないため、これは明らかに機能しません。

問題は この例 に基づいて./myClass/index.d.tsファイルを作成しようとしたが、それでもエラーが発生する:モジュールが見つかりません 'です。 /myClass/index.js'実行時のエラー:(

TypeScriptの基本をここで見逃しているような気がしますが、いくつかの明確なリソースを見つけるよう努めています。

何か案は ?

9
aherve

JavaScriptにはexport default classはありません。あなたができることは、このようにJSファイルを書くことです。 myClass/index.js

"use strict";
class MyClass {
  hello(name) {
    console.log(`Hello ${name}`);
  }

}
exports.default = MyClass;

タイプ定義を作成します。 myClass/index.d.ts

export default class MyClass {
  hello(name: string): void;
}

その後、次のようにTypeScriptにインポートできます。

/// <reference path="./myClass/index.d.ts" />
import MyClass from "./myClass";

const my = new MyClass();
my.hello("Stack Overflow");
10
goenning

あなたのjavascriptファイルの最後に、これを書いてください

exports.MyClass = MyClass;

tsファイル

import * as  IzendaSynergy  from './izenda/izenda_ui.js';

または

import { IzendaSynergy } from './izenda/izenda_ui.js';

tsconfig.jsonファイル内

  "allowJs": true
1
siva