Which additional Functional Programming features does TypeScript offer compared to JavaScript? -


i'm interested in learning typescript, if can code functionally it, , avoid imperative / oop as possible.

does typescript add features on basic javascript better support functional programming? they?

javascript multi-paradigm programming language.

from mdn:

a multi-paradigm programming language programming language supports more 1 programming paradigm. central idea of multiparadigm language provide framework in programmers can work in variety of styles, freely intermixing constructs different paradigms. design goal of such languages allow programmers use best tool job, admitting single paradigm cannot solve problems in easiest or efficient way.

supporting view, javascript supports, or infact uses various styles. example, syntax follows c language structure, procedural language, , @ same time javascript copies many names , naming conventions object-oriented programming language, java, 2 languages otherwise unrelated , have different semantics. key design principles within javascript taken self , scheme programming languages.

typescript superset of javascript means every javascript program valid typescript program. typescript multi-paradigm programming language can used functional programming language.

you can learn how use javascript , typescript functional programming language book functional javascript michael fogus.

also check out open-source libraries:

update

i don't think typescript has additional fp features on basic javascript. however, typescript includes alternative function syntax known lambda syntax ()=>{}.

i believe syntax wasn't added typescript "make language more functional" solve common javascript problem: dealing value of this.

we can argue lambda syntax facilitates creation of code looks more functional traditional javascript code. example, instead of writing:

function isbigenough(value) {   return value >= 10; } var filtered = [12, 5, 8, 130, 44].filter(isbigenough); 

we can write:

var isbigenough = (value) => value >= 10; var filtered = [12, 5, 8, 130, 44].filter(isbigenough); 

or just:

var filtered = [12, 5, 8, 130, 44].filter((value) => value >= 10); 

update 2

also typescript has types , types important in functional programming. read "is javascript function pure?" andré staltz understand why.

typescript 2.0 introduces tagged unions.

tagged unions exciting new feature brings functionality languages f#, swift, rust, , others javascript, while embracing way people write javascript today. feature called discriminated unions, disjoint unions, or algebraic data types.

algebraic data types important feature in functional programming languages. can see typescript starting add features fp developers.

update 3

the last 2 releases of typescript have introduced features like: structural type system, literal types, discriminated unions, mapped types, etc. type system has better support functional programming use cases.


Comments