Вы находитесь на странице: 1из 15

TypeScript

Documentation

1
Команды для работы с TS

TypeScript представляет собой как язык


программирования, так и набор инструментов.
Это типизированный, расширенный
JavaScript, компилируемый в JavaScript.
Другими словами, TypeScript – это JavaScript
с некоторыми дополнительными
характеристиками.

2
Команды для работы с TS
npm install –g typescript
tsc --init
tsc index.ts или tsc

3
tsc --init
tsconfig.json

“sourceMap”: true
“noEmitOnError”: true

4
Приведение типов в TS

5
Массивы

let strArray: string[] = ['1', '2', '3'];//let strArray: Array<string>

let numArray: number[] = [1, 2, 3 ];

let adjacentArray: [number, string, boolean] = [1, '2', true];

let adjacentArray2: [Array<number>, object] = [ [1, 2], [1, '2', true, [1, 3]]];

let dynamicAdjacentArray: Array<number | string> = [1, '2', 3, 4, '5'];

6
Функции

7
Объекты

let obj:{num?:number, str:string, fn:()=> void, isBoolean:boolean} ={


str: 'STR',
num: 5,
isBoolean: true,
fn(): void{
console.log(this.num);
}
}

8
type Obj={num?:number, str:string, fn:()=> void, isBoolean:boolean};

let obj2:Obj={
str: 'STR',
isBoolean: true,
fn(): void{
console.log(this.num);
}
}

9
Специальные типы
enum User {
admin,
bro,
quest = 23,
spy
}
const user1: User = User.bro;
console.log(user1)//1;
const user2: User = User.spy
console.log(user2)//24

function newError(err:string): never{


throw new Error(err);
}

10
Классы
class User {
public name: string;
protected age: number = 18;
private isAdmin!: boolean;//?

constructor(name: string, public status: string) {


this.name = name;
}
private getAge(): number {
return this.age;
}

public setTitle(title: boolean): void {


this.isAdmin = title;
console.log(this.isAdmin);
console.log(this.getAge());
}
}
11
const snou = new User('Snou', 'King');
console.log(snou);//User {status: "King", age: 18, isAdmin: true, name: "Snou"}
Наследование классы
class User {
private isAdmin!: boolean;
protected age: number = 18;

constructor(public name: string, public status: string) {


}
public getAge(): number {
return this.age;
}
}

class Heir extends User {


constructor(status: string) {
super("blabla", status);
this.age = 1;
this.isAdmin = true //не срабртает
}
}
const snou = new User('Snou', 'King');//{name: "Snou", status: "King", age: 18} 12
const heir = new Heir('Prince')// {name: "blabla", status: "Prince", age: 1}
Абстрактные классы

abstract class Template {


name: string = 'Name’;
abstract getStr(info: string): void;
}

class User extends Template {

getStr(str: string): void {


console.log(str)
}
}
const user = new User();
user;//User {name: "Name"}
user.getStr('blabla');//blabla

13
interface(;) или type(,)

interface IObj { type tObj = {


str: string; str: string,
num?: number; num?: number,
} getHi(): string
}

const obj2: IObj = {//tObj ?


str: 'STR’,
num: 1
};
class Obj implements IObj, tObj {
str: string = 'STR’;
getHi(): string {
return this.str
}
newArr!: number[];
}
14
Альтернативы

Scala

CoffeeScript Dart

15

Вам также может понравиться