TypeScript 相关知识点
TypeScript About 1,246 words安装
npm install -g typescript
编译 ts 文件
tsc
在全局安装完typescript
后自动会加入到环境变量中。
tsc hello.ts
基本类型
boolean
number
string
any
void
(多用于函数返回值)
修饰符用于构造函数
修饰符可以使用在构造函数参数中,等同于类中定义该属性同时给该属性赋值,使代码更简洁。
class Animal {
public constructor(public name) {
}
}
等同于
class Animal {
public name: string;
public constructor(public name) {
this.name = name;
}
}
联合类型
联合类型使用|
分隔每个类型。
这里的let myFavoriteNumber: string | number
的含义是:允许myFavoriteNumber
的类型是string
或者number
,但是不能是其他类型。
let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;
只能访问此联合类型的所有类型里共有的属性或方法:
访问string
和number
的共有属性是没问题的
function getString(something: string | number): string {
return something.toString();
}
问号
可选参数
?
表示param
这个参数是一个可选参数。
function getUser(user: string, param?: string) { }
成员变量
?
表示name
这个字段有可能不存在。
interface B {
name?: string
}
class A {
name?: string
}
安全链式调用
添加?
操作符,当stack
属性存在时,调用stack.split
。若stack
不存在,则返回空。
new Error().stack?.split('\n');
等同于
const err = new Error();
return err.stack && err.stack.split('\n');
感叹号
成员变量
接口B
里面name
被定义为可空的值,但是实际情况是不为空的。
可以通过在class
里面使用!
,重新强调了name
这个不为空值。
interface B {
name?: string
}
class A implemented B {
name!: string
}
强制链式调用
字段肯定会出现,那么就可以添加!
,强调这个字段一定存在。
new Error().stack!.split('\n');
Views: 1,004 · Posted: 2022-12-18
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...