Is it possible to export a simple function from a typescript module?
This isn't compiling for me.
module SayHi { export function() { console.log("Hi"); } } new SayHi();
This workitem seems to imply that you cannot but doesn't flat out say it. Is it not possible?
Use named exports to export a function in TypeScript, e.g. export function sum() {} . The exported function can be imported by using a named import as import {sum} from './another-file' . You can use as many named exports as necessary in a single file.
TypeScript supports export = to model the traditional CommonJS and AMD workflow. The export = syntax specifies a single object that is exported from the module. This can be a class, interface, namespace, function, or enum.
Yes, we can export the functions in TypeScript by using the 'export' keyword at the start of the function. export interface inteface_name: In TypeScript, we can export the interface as well, we can follow this syntax to make the interface exportable.
You can export as many functions as needed as long as you remember that there can be only one default export. The default export in JavaScript is used to export a single/fallback value from a module. With a default export, you do not need to specify a name for the exported function. The filename is used by default.
It's hard to tell what you're going for in that example. exports =
is about exporting from external modules, but the code sample you linked is an internal module.
Rule of thumb: If you write module foo { ... }
, you're writing an internal module; if you write export something something
at top-level in a file, you're writing an external module. It's somewhat rare that you'd actually write export module foo
at top-level (since then you'd be double-nesting the name), and it's even rarer that you'd write module foo
in a file that had a top-level export (since foo
would not be externally visible).
The following things make sense (each scenario delineated by a horizontal rule):
// 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
To answer the title of your question directly because this comes up in Google first:
YES, TypeScript can export a function!
Here is a direct quote from the TS Documentation:
"Any declaration (such as a variable, function, class, type alias, or interface) can be exported by adding the export keyword."
Reference Link
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With