Тип совместимости

Совместимость типов используется для определения того, может ли тип быть назначен другим типам.

Если тип string не совместим с типом number:

let str: string = "Hello";
let num: number = 123;

str = num; // ERROR: `number` is not assignable to `string`
num = str; // ERROR: `string` is not assignable to `number`

Безопасность

Система типов TypeScript разработана так, чтобы она была удобной и допускала неправильное поведение, например что угодно может быть назначено any, что означает указание компилятору позволить вам делать все, что вы хотите:

const foo: any = 123;
foo = 'hello';

foo.toPrecision(3);

Структуры

Объекты TypeScript структурно типизированы. Это означает, что имена не имеют значения, пока структуры совпадают

interface Point {
    x: number,
    y: number
}

class Point2D {
    constructor(public x:number, public y:number){}
}

let p: Point;
// OK, потому что структурно типизированы
p = new Point2D(1,2);

Это позволяет вам создавать объекты на лету (как вы делаете в vanilla JS) и сохраняете безопасность всякий раз, когда можно сделать вывод.

Варианты

Last updated

Was this helpful?