Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can typescript export a function?

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?

like image 658
George Mauer Avatar asked Mar 27 '13 03:03

George Mauer


People also ask

How do you write export functions in TypeScript?

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.

What does export function mean in TypeScript?

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.

How do I export a function in react TypeScript?

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.

Can you export a function?

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.


2 Answers

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 
like image 112
Ryan Cavanaugh Avatar answered Oct 20 '22 04:10

Ryan Cavanaugh


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

like image 37
Ray Hulha Avatar answered Oct 20 '22 05:10

Ray Hulha