使用tsc 1.8.9 ...为什么这些导入不起作用?我以为TypeScript实现了ES6模块语法?
“类/ person.ts”
export default class Person {
protected _name: string;
protected _language: string;
constructor(name: string) {
this._name = name;
this.hello();
}
public hello() {
console.log("Hello, " + this._name);
console.log("Lang: " + this._language);
}
}
“类/ englishman.ts”
import Person from "person"
export default class Englishman extends Person {
constructor(name: string){
this._language = "en_GB";
super(name);
}
}
“main.ts”
import * as $ from "jquery";
import Englishman from "classes/englishman";
let tom: Person = new Englishman("Tom");
console.log(tom);
$("body").html(`<h1>TEST</h1>`);
错误:
source / main.ts(2,24):错误TS2307:找不到模块'classes / englishman' . source / main.ts(4,10):错误TS2304:找不到名字'Person' . [13:53:43] TypeScript:2个语义错误
2 回答
经过一些更改后,它适用于我,在ES5和ES6中进行了测试 . 我希望能帮助你:
原版的
import Person from "classes/person";
import Englishman from "classes/englishman";
改变测试
import Person from './person';
import Englishman from './classes/englishman';
也许你需要检查你的目录树 .
加
import Person from './classes/person';
.
tsc版本1.8.2
node v5.4.1
确保您正在使用ES6目标进行编译,如果我没记错,ES5仍然是默认目标 .