import X = require('../../far/away/PathToX');
import Y = require('./another/path/PathToX');
我使用外部模块(commonJS)和browserify,以及WebStorm作为编辑器。
如果这只是简单的javascript,有各种选项可以忽略必须始终使用这些长路径,例如使用browserify别名。但是,使用typescript,编辑器实际上遵循路径并检索类型信息以提供智能感知。因此,如果我使用其中一个选项,编辑器将无法找到文件路径,并且编译器也会引发错误。
那么在typescript(对于任何编辑器)中是否存在允许我以某种方式使用路径别名的任何现有方法?
答案 0 :(得分:0)
有一点黑客可以做到这一点,但你必须手动编写AMD或CommonJS导入...例如,像这样...
///<amd-dependency path="scripts/typings/cordova/cordova.d.ts" />
declare var require: any;
var cordova: Cordova = require('cordova');
module Example {
class Test {
constructor() {
cordova.exec(this.success, this.error, "Service", "Action", null);
}
private success(message?: string) {
//do Something
}
private error(message?: string) {
//do Something
}
}
}
或使用define
而不是require
。
就个人而言,我会忍受很长的路径,无需重写任何TypeScript,即可获得使用TypeScript编译器开关为AMD或CommonJS定位的好处。
答案 1 :(得分:0)
那么在typescript(对于任何编辑器)中是否存在允许我以某种方式使用路径别名的任何现有方法?
Grunt-ts可以为您做到这一点。您可以通过ts:import=someFileName
进行简单的引用,它会为您生成正确的import
语句https://github.com/TypeStrong/grunt-ts#import-transform