Typescript: Difference between revisions
No edit summary |
|||
Line 127: | Line 127: | ||
<syntaxhighlight lang="typescript"> | <syntaxhighlight lang="typescript"> | ||
let fixedString: string = (value as number).toFixed(4); | let fixedString: string = (value as number).toFixed(4); | ||
</syntaxhighlight> | |||
= functions = | |||
== Adding types == | |||
With typescript we can specify types e.g. | |||
<syntaxhighlight lang="typescript"> | |||
function funFunc(score: number, message1: string = "default ", message2?: string): string { | |||
return message1 + message2; | |||
} | |||
</syntaxhighlight> | |||
The ? means the parameters is option and the final colon shows the return value of the function | |||
== Arrow Functions or lamdas == | |||
These take the format of | |||
parameters => function body | |||
e.g. | |||
For zero parameters | |||
<syntaxhighlight lang="typescript"> | |||
let greeting = () => console.log("Hello world"); | |||
greeting(); // Hello world | |||
</syntaxhighlight> | |||
For 1 parameter | |||
<syntaxhighlight lang="typescript"> | |||
let squareit = x => x * x; | |||
let result = squareit(4); // 16 | |||
</syntaxhighlight> | |||
For multiple parameters | |||
<syntaxhighlight lang="typescript"> | |||
let adder = (a,b) = a + b; | |||
let sum = adder(2,3); // 5 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Webpack Configuration == | == Webpack Configuration == |
Revision as of 04:37, 10 July 2020
Introduction
TypeScript is a typed language which produces javascript.
e.g.
let myString = "fred";
let myBoolean = true;
function createMessage(name:string) {
}
Typescript supports classes and access modifiers
class Person {
name: string
lastName: string
public Person(name:string) {
this.name = name;
}
public void setLastName(lastName: string) {
this.lastName = lastName;
}
}
Configuration
tsconfig
You can set the options for the compiler you can specify a tsconfig.json file. By using
tsc --init
you get a default file.
You can inherit tsconfigs from parent directories. This compiles all *.ts files in this directory and child directories.
{
"extends": "../tsconfig.base",
"compilerOptions": {
"removeComments": true
},
"include": [
"./**/*.ts"
]
}
Webpack Configuration
The ts-loader module allows recompiling of the type script and you need to install it if using.
module.exports = {
entry: './app/app.ts',
devtool: 'inline-source-map'
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
},
resolve: {
extensions: ['.tsx', '.ts', 'js']
},
output: {
filename: 'bundle.js'
},
devServer: {
inline: false
}
};
Data Types
No more var
Don't use var but instead use
let
or
const
Base Data Types
The following types are available
- Boolean
- Number
- String
- Array
- Enum (not in javascript)
Other types
- void
- null
- undefined
- Never (e.g. for infinite loop return types)
- Any (e.g. for when using types not guaranteed from other libraries)
Union types This allows more than type e.g.
let number_string : string | number
Not good if you ask me. However maybe useful for strings e.g.
let null_string : string | null
By default the null is not allowed to be assigned without a union declaration.
Type assertions
You can assert types in one of two ways
let value: any = 5;
let fixedString: string = (<number>value).toFixed(4);
console.log(fixedString); // 5.0000
or
let fixedString: string = (value as number).toFixed(4);
functions
Adding types
With typescript we can specify types e.g.
function funFunc(score: number, message1: string = "default ", message2?: string): string {
return message1 + message2;
}
The ? means the parameters is option and the final colon shows the return value of the function
Arrow Functions or lamdas
These take the format of
parameters => function body
e.g. For zero parameters
let greeting = () => console.log("Hello world");
greeting(); // Hello world
For 1 parameter
let squareit = x => x * x;
let result = squareit(4); // 16
For multiple parameters
let adder = (a,b) = a + b;
let sum = adder(2,3); // 5