TypeScript: Hur importerar man en ES6 JavaScript-klass?
Jag har en ES6 JavaScript-klass som heter DB definierad som följer:
// db.js
"use strict";
export default class DB {
...
}
Och en TypeScript-fil som ser ut på följande sätt:
// surgeons.ts
"use strict";
import DB from "./db";
Jag förväntar mig att detta bara ska fungera men jag får följande fel:
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' }
Jag försökte definiera en db.d.ts-fil som beskrivs här men detta genererade felet:
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' }
Min tsconfig är som följer:
{
"compilerOptions": {
"module": "es6",
"target": "es6",
"moduleResolution": "node",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true
},
"include": [
"app/source/**/*",
"test/**/*"
],
"exclude": [
"node_modules"
]
}
Svar #1
Enligt Daniel Rosenwasser gjorde inställningen "allowJs": true i tsconfig.json avsnittet "compilerOptions" susen. Jag behövde inte använda en .d.ts-fil alls.