typescript 学习笔记

╰+哭是因爲堅強的太久メ 2023-07-01 12:54 34阅读 0赞

一、基础类型


1.1 布尔类型

  1. let isTest: boolean = false;

1.2 string

  1. let text: string = 'this is a text';
  2. // 模板字符串 ``
  3. let str = 'about template string!';
  4. let templateText: string = `this is a text ${str}`;

1.3 number

与 js 一样,在 ts 中所有数值都是浮点型,而这些浮点型的类型都是 number。同时还支持二进制、八进制、十六进制。

  1. let num: number = 100;

1.4 数组

  1. // 使用确定类型的数组
  2. let arr: number[] = [1,2,3,4];
  3. // 使用泛型数组
  4. let list: Array<number> = [];

1.5 元组(tuple)

元组类型允许构建一个已知元素数量和类型的数组,数组内元素类型不必相同。

  1. let tupleArr: [string, number];
  2. tupleArr = ["test", 100];
  3. console.log(tupleArr[0]); // "test"
  4. console.log(tupleArr[1]); // 100

1.6 枚举

enum 是对JavaScript标准数据类型的一个补充。 像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。

  1. enum Color {Red = 1, Green, Blue}
  2. let c: Color = Color.Green;

1.7 任意值(any)

有时我们在编程阶段还不清楚数据的具体类型,它可能是动态的内容,来自服务器、用户输入等。这时我们不希望类型检查器对这些数据进行检查,此时就可以使用 any 来标记。

1.8 空值(void)

void 表示没有返回值,没有任何类型

  1. function warnUser(): void {
  2. alert("This is my warning message");
  3. }

1.9 null 和 undefined

2.0 never

never 类型表示的是那些永不存在的值的类型

二、类型断言


有的时候我们比 ts 更了解某个值的详细信息, 通常发生在清楚的知道一个值会有哪些具体的类型。可以通过类型断言来告诉编译器,“我知道自己在做什么”。类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。 它没有运行时的影响,只是在编译阶段起作用。 TypeScript会假设你,程序员,已经进行了必须的检查。

  1. // 使用尖括号
  2. let strLength: number = (<string>someValue).length;
  3. // 使用 as
  4. let strLength: number = (someValue as string).length;

三、变量声明和解构


3.1 变量声明

var let const

3.2 数组解构和对象解构

解构可以将数组或对象中的值,用一句代码解析到多个变量中

  1. / 数组解构 /
  2. // javascript:
  3. let input = [1, 2, 3, 4];
  4. let first = input[0];
  5. let second = input[1];
  6. let third = input[2];
  7. let forth = input[3];
  8. // typescript:
  9. let input = [1, 2, 3, 4];
  10. let [first, second, third, forth] = input;
  11. console.log(first); // outputs 1
  12. console.log(second); // outputs 2
  13. console.log(third); // outputs 3
  14. console.log(forth); // outputs 4
  15. / 对象解构 /
  16. // javascript:
  17. let o = {
  18. a: "foo",
  19. b: 12,
  20. c: "bar"
  21. };
  22. let a = o.a;
  23. let b = o.b;
  24. let c = o.c;
  25. // typescript:
  26. let o = {
  27. a: "foo",
  28. b: 12,
  29. c: "bar"
  30. };
  31. let { a, b, c } = o;

四、接口


#

#

五、类


5.1 类的实现和继承类

  1. class Animal{
  2. name: string;
  3. age: number;
  4. constructor(name, age) {
  5. this.name = name;
  6. this.age = age;
  7. }
  8. Move(): void{
  9. ...
  10. }
  11. }
  12. class Dog extends Animal {
  13. name: string;
  14. age: number;
  15. constructor(name, age) {
  16. super(name, age);
  17. this.name = name;
  18. this.age = age;
  19. }
  20. Move(): void{
  21. ...
  22. }
  23. }

5.2 权限修饰符: public、protected、private

5.2.1 private

当成员被标记为 private 属性时,这个成员不能在声明它的类的外部访问。

  1. class Animal {
  2. private name: string;
  3. constructor(theName: string) { this.name = theName; }
  4. }
  5. new Animal("Cat").name; // 错误: 'name' 是私有的.

5.2.2 protected

被标记为 protected 的成员,可以在声明类的派生类中访问。

  1. class Person {
  2. protected name: string;
  3. constructor(name: string) { this.name = name; }
  4. }
  5. class Employee extends Person {
  6. private department: string;
  7. constructor(name: string, department: string) {
  8. super(name)
  9. this.department = department;
  10. }
  11. public getElevatorPitch() {
  12. return `Hello, my name is ${this.name} and I work in ${this.department}.`;
  13. }
  14. }
  15. let howard = new Employee("Howard", "Sales");
  16. console.log(howard.getElevatorPitch());
  17. console.log(howard.name); // 错误

5.2.3 public

默认使用

发表评论

表情:
评论列表 (有 0 条评论,34人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Typescript学习笔记(二)

    泛型 在像C\和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。 这样用户就可以以自己的数据类型来使用组件。 我们需要一种方法使返