typescriptモジュールから単純な関数をエクスポートすることは可能ですか?
module SayHi {
export function() {
console.log("Hi");
}
}
new SayHi();
この作業項目は、あなたがそれを言うことができないが、それを平らにしないことを意味しているようです。できませんか?
typescriptモジュールから単純な関数をエクスポートすることは可能ですか?
module SayHi {
export function() {
console.log("Hi");
}
}
new SayHi();
この作業項目は、あなたがそれを言うことができないが、それを平らにしないことを意味しているようです。できませんか?
その例で何をしようとしているのかを判断するのは難しいです。外部exports =
モジュールからのエクスポートに関するものですが、リンクしたコードサンプルは内部モジュールです。
経験則:書く場合module foo { ... }
は、内部モジュールを書いています。トップレベルでファイルに書き込む場合export something something
は、外部モジュールを書き込んでいます。実際にトップレベルで書き込むことはexport module foo
(それ以降、名前を二重にネストすることになるため)、ややまれです。またmodule foo
、トップレベルのエクスポートを含むファイルに書き込むことはさらにまれです(foo
そうでないため)。外部から見えるようにする)。
次のことが理にかなっています(各シナリオは水平方向のルールで表されます)。
// 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
これが最初にGoogleに表示されるため、質問のタイトルに直接答えるには:
はい、TypeScriptは関数をエクスポートできます!
TSドキュメントからの直接の引用は次のとおりです。
「任意の宣言(変数、関数、クラス、型エイリアス、インターフェイスなど)は、exportキーワードを追加することでエクスポートできます。」
これをAngularに使用している場合は、名前付きエクスポートを介して関数をエクスポートします。そのような:
function someFunc(){}
export { someFunc as someFuncName }
そうしないと、Angularはオブジェクトが関数ではないと文句を言います。
編集:私は現在Angular 11を使用していますが、これはもう必要ありません。だからそれは十分ですexport function(){ ...}
私の場合、私は次のようにしています:
module SayHi {
export default () => { console.log("Hi"); }
}
new SayHi();
from
でキーワードを使用してimport
、エクスポートされたオブジェクトを直接破棄することもできます。
file1.ts
export const CARS_QUERY = `
{
getAllCars {
model,
make,
picture
}
}
`;
file2.ts
import { CARS_QUERY } from "file1.ts";