Dieses Arbeitselement scheint zu implizieren, dass Sie es nicht sagen können, aber nicht sagen. Ist es nicht möglich?
Ryan Cavanaugh
Es ist schwer zu sagen, worauf Sie in diesem Beispiel hinaus wollen. exports = geht es um den Export aus extern Module, aber das von Ihnen verlinkte Codebeispiel ist eine intern Modul.
Faustregel: Wenn Sie schreiben module foo { ... }, schreiben Sie ein internes Modul; wenn du schreibst export something something Auf oberster Ebene in einer Datei schreiben Sie ein externes Modul. Es ist etwas selten, dass Sie tatsächlich schreiben export module foo auf oberster Ebene (seitdem würden Sie den Namen doppelt verschachteln), und es kommt noch seltener vor, dass Sie schreiben module foo in einer Datei, die einen Top-Level-Export hatte (seit foo von außen nicht sichtbar wäre).
Folgende Dinge sind sinnvoll (jedes Szenario durch eine horizontale Regel abgegrenzt):
// An internal module named SayHi with an exported function 'foo'
module SayHi {
export function foo() {
console.log("Hi");
}
export class bar { }
}
// N.B. this line could be in another file that has a
// <reference> tag to the file that has 'module SayHi' in it
SayHi.foo();
var b = new SayHi.bar();
file1.ts
// This *file* is an external module because it has a top-level 'export'
export function foo() {
console.log('hi');
}
export class bar { }
file2.ts
// This file is also an external module because it has an 'import' declaration
import f1 = module('file1');
f1.foo();
var b = new f1.bar();
file1.ts
// This will only work in 0.9.0+. This file is an external
// module because it has a top-level 'export'
function f() { }
function g() { }
export = { alpha: f, beta: g };
file2.ts
// This file is also an external module because it has an 'import' declaration
import f1 = require('file1');
f1.alpha(); // invokes f
f1.beta(); // invokes g
Danke, die exports function blah() Syntax ist das, wonach ich gesucht habe
– Georg Mauer
27. März 2013 um 13:29 Uhr
Vier Jahre später glaube ich, dass es viel sinnvoller wäre, wenn “Export” stattdessen “öffentlich” heißen würde …
– Loupax
19. April 2017 um 5:21 Uhr
Um den Titel Ihrer Frage direkt zu beantworten, da dieser zuerst in Google auftaucht:
JA, TypeScript kann eine Funktion exportieren!
Hier ist ein direktes Zitat aus der TS-Dokumentation:
“Jede Deklaration (z. B. eine Variable, Funktion, Klasse, ein Typalias oder eine Schnittstelle) kann durch Hinzufügen des Schlüsselworts export exportiert werden.”