微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TypeScript:如何导入ES6 JavaScript类?

我有一个名为DB的ES6 JavaScript类,定义如下:

// db.js
"use strict";

export default class DB {
  ...
}

还有一个TypeScript文件,如下所示:

// surgeons.ts
"use strict";

import DB from "./db";

我希望这可以正常工作,但是会出现以下错误

browserify Error { [TypeScript error: app/source/common/surgeons.ts(3,16): Error TS2307: Cannot find module './db'.]
  message: 'app/source/common/surgeons.ts(3,16): Error TS2307: Cannot find module \'./db\'.',
  fileName: 'app/source/common/surgeons.ts',
  line: 3,
  column: 16,
  name: 'TypeScript error' }

我试图按here所述定义db.d.ts文件,但这会产生错误

browserify Error { [TypeScript error: app/source/common/surgeons.ts(5,16): Error TS2306: File 'app/source/common/db.d.ts' is not a module.]
  message: 'app/source/common/surgeons.ts(5,16): Error TS2306: File \'app/source/common/db.d.ts\' is not a module.',
  fileName: 'app/source/common/surgeons.ts',
  line: 5,
  column: 16,
  name: 'TypeScript error' }

我的tsconfig如下:

{
  "compilerOptions": {
    "module": "es6",
    "target": "es6",
    "moduleResolution": "node",
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "allowSyntheticDefaultImports": true,
    "sourceMap": true
  },
  "include": [
    "app/source/**/*",
    "test/**/*"
  ],
  "exclude": [
    "node_modules"
  ]
}

解决方法:

根据Daniel Daniel Rosenwasser的说法,在tsconfig.json的“ compilerOptions”部分中设置“ allowJs”:true可以达到目的.我根本不需要使用.d.ts文件.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐