ts教程要点说明

2024-10-28  本文已影响0人  海豚先生的博客

ts-node 是一个非官方的 npm 模块,可以直接运行 TypeScript 代码。

TypeScript 提供了一个编译选项noImplicitAny,打开该选项,只要推断出any类型就会报错。

unknown跟any的相似之处,在于所有类型的值都可以分配给unknown类型。

注意,如果没有声明类型的变量,被赋值为undefined或null,在关闭编译设置noImplicitAny和strictNullChecks时,它们的类型会被推断为any。如果希望避免这种情况,则需要打开编译选项strictNullChecks。

TypeScript 提供了一个编译选项strictNullChecks。只要打开这个选项,undefined和null就不能赋值给其他类型的变量(除了any类型和unknown类型)。

联合类型可以与值类型相结合,表示一个变量的值有若干种可能。

交叉类型常常用来为对象类型添加新属性。

type A = { foo: number };
type B = A & { bar: number };

TypeScript 将typeof运算符移植到了类型运算,它的操作数依然是一个值,但是返回的不是字符串,而是该值的 TypeScript 类型。

const a = { x: 0 };
type T0 = typeof a; // { x: number }
type T1 = typeof a.x; // number

子类型可以赋值给父类型,反之不可以

let a:'hi' = 'hi';
let b:string = 'hello';
b = a; // 正确,a是值类型hi,它是string类型的子类
a = b; // 报错,b是a的父类型,不可以
上一篇 下一篇

猜你喜欢

热点阅读