簡體   English   中英

有沒有辦法在打字稿中別名導入路徑

[英]Is there a way to alias the import path in typescript

import X = require('../../far/away/PathToX');
import Y = require('./another/path/PathToX');

我正在使用外部模塊(commonJS)和browserify,並使用WebStorm作為編輯器。

如果這只是普通的javascript,則可以使用各種選項來忽略必須始終使用這些長路徑,例如使用browserify別名。 但是,使用打字稿時,編輯器實際上會遵循該路徑並檢索打字信息以提供智能感知。 因此,如果使用這些選項之一,則編輯器將找不到文件路徑,並且編譯器也會引發錯誤。

那么打字稿中是否有任何現有方法(適用於任何編輯器)允許我以某種方式使用路徑別名?

有一點技巧可以做到,但是您必須手動編寫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編譯器開關為我定位AMD或CommonJS的好處,而無需重寫任何TypeScript。

那么打字稿中是否有任何現有方法(適用於任何編輯器)允許我以某種方式使用路徑別名?

Grunt-ts可以為您做到這一點。 您可以通過ts:import=someFileName簡單引用,它將為您生成正確的import語句https://github.com/TypeStrong/grunt-ts#import-transform

暫無
暫無

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

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