Вопрос

Я пытаюсь Teadncript, и я нахожу это очень полезным.

У меня довольно большой проект, и я рассматривал, что переписал его, используя Typescript. Основная проблема здесь следующая:

Файл A.TS:

class A extends B {
    // A stuff
}
.

Файл b.ts:

class B {
    // B stuff
}
.

Если я компилирую A.ts с этой командой:

tsc --out compiledA.js A.ts
.

Я получу ошибку от компилятора, потому что он не знает, как угрозить «B» после продлений.

Итак, «решение» будет включать в ALTS (в качестве первой строки кода):

/// <reference path="./B.ts" />
.

Снова компиляция A.Ts с той же командой

tsc --out compiledA.js A.ts
.

приведет к compileda.js, содержащим код B.ts, и Atts. (который может быть очень приятно)

В моем случае мне нужно только компилировать код A.TS в файле Compileda.js, и я не хочу, чтобы вещи B.ts есть там.

Действительно, что я хочу:

    .
  • tsc --out a.js a.ts=> Компиляция только тоновных вещей
  • tsc --out b.js b.ts=> Компиляция только B.ts вещ

Я могу сделать это, удалив ключевое слово «продлен», но делает это, я потеряю большую часть знаменитой доброты.

Может кто-нибудь сказать мне, если есть способ сделать это?

Это было полезно?

Решение

После некоторых исследований я обнаружил, что проблема была введена аргументом в компиляторе.

@silent__ Необъемлющий решение работает нормально, если вы хотите иметь дело с модулями.Если вам нет, вам нужно использовать оператор Thanure (посмотрите на вопрос), а затем скомпилируйте файл «Main.ts» без аргумента Auth

Другие советы

Редактировать: Как указывает Andrea, если вы опускаете параметр --out, вы получите ожидаемое поведение, то есть нет комбинации исходных файлов.Я покину этот альтернативное решение ниже, если это может помочь кому-то еще.


Я считаю, что вам придется использовать синтаксис внешнего модуля (Commonjs или AMD), чтобы сделать это.

Использование вашего примера:

ATTS

import B = module("b")

class A extends B.B {
    // A stuff
}
.

B.TS

export class B {
    // B stuff
}
.

Компиляция с tsc --out compiledA.js A.ts.

Это приводит к расширению генеракодицетагкода, импортирующего генеракодицетагкод с использованием системы Commonjs.Полученные файлы выглядят так:

ATTS

var __extends = this.__extends || function (d, b) {
    function __() { this.constructor = d; }
    __.prototype = b.prototype;
    d.prototype = new __();
}
var B = require("./b")
var A = (function (_super) {
    __extends(A, _super);
    function A() {
        _super.apply(this, arguments);

    }
    return A;
})(B.B);
.

B.TS

var B = (function () {
    function B() { }
    return B;
})();
exports.B = B;
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top