簡體   English   中英

打字稿:如何從javascript文件導入一個類?

[英]Typescript: how to import a class from a javascript file?

我想要 :

  • 導入定義類的js文件: ./myClass/index.js
  • 在某處聲明MyClass的公共方法(在index.ts或指定的聲明文件中,我真的不知道該怎么做)
  • 有一個暴露類的index.ts文件: 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'錯誤:(

我覺得我在這里錯過了一些打字稿基礎,但我正在努力尋找一些明確的資源。

有任何想法嗎 ?

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");

在你的javascript文件的末尾,寫下這個

exports.MyClass = MyClass;

在ts文件中

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

要么

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

在tsconfig.json文件中

  "allowJs": true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM