Тип совместимости
Совместимость типов используется для определения того, может ли тип быть назначен другим типам.
Если тип 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?