Last updated on Oct 2, 2022
The goal of TypeScript is to be a static typechecker for JavaScript programs - in other words, a tool that runs before your code runs (static) and ensures that the types of the program are correct (typechecked).
TypeScript stands in an unusual relationship to JavaScript. TypeScript offers all of JavaScript’s features, and an additional layer on top of these: TypeScript’s type system.
?.)、空值合并(??)等。简单类型系统,简单直观,能保证类型安全,但不够灵活。
function add(arg: number): number {
return arg
}
泛型(Generic Type),通用的类型,它可以代表任何一种类型,也叫做类型参数。
它给类型系统增加了一些灵活性,在整体比较固定,部分变量的类型有变化的情况下,可以减少很多重复代码。
function add<T>(arg: T): T {
return arg
}
interface GenericFn<T> {
(arg: T): T
}
const myAdd: GenericFn<number> = add
声明时把会变化的类型声明成泛型(也就是类型参数),在调用的时候再确定类型。
但 JavaScript 太过于灵活,在 Java 中,对象都是类 new 出来的,不能凭空创造对象,但 JavaScript 却可以,它支持对象字面量。