为了账号安全,请及时绑定邮箱和手机立即绑定
  • // void、undefined 与 never

    function printResult () : void {

        console.log("lalala");

    }

    console.log(printResult()); // 报错


    function printResult () : undefined  {

        console.log("lalala");

    }

    console.log(printResult()); 


    function throwError(message: string, errorCode: number) :never{

        throw {

            message,

            errorCode

        }

    }

    throwError("not found", 404);


    function whileLoop(): never {

         while(true) {

            console.log("hahah")

        }

    }

    查看全部
  • // any 和 unkonwn

    let randomValue: any = 666;

    randomValue = true;

    randomValue = "asdga";

    randomValue = {};

    randomValue(); // 报错

    randomValue.toUpperCase(); // 报错



    let randomValue: unknown= 666;

    randomValue = true;

    randomValue = "asdga";

    randomValue = {};


    if(typeof randomValue === 'function') {

        randomValue(); 

    }


    if(typeof randomValue === 'string') {

        randomValue.toUpperCase(); // 报错

    }

    查看全部
    0 采集 收起 来源:Any 与 unknow

    2022-03-10

  • // 枚举类型 Enum

    enum Color {

        red,

        green,

        blue

    }


    let color = Color.blue;

    console.log(color);


    enum Color2 {

        red = 2,

        green = 10,

        blue = 1

    }


    enum Color3 {

        red = "red",

        green = "green",

        blue = 1

    }

    查看全部
    0 采集 收起 来源:枚举类型 Enum

    2022-03-10

  • // 联合(Union)与文献[Literal]类型

    let union: string | number

    union = 2;

    union = "uuhkd";

    union = true; // 报错


    let union2: number | string | boolean | string[];

    const merge = (n1:  number | string, n2: number | string, resultType: "as-number" | "as-string" ) => {

        if(resultType === "as-string" {

            return n1.toString() + n2.toString();

        }


        if(typeof n1 === "string" || typeof n2 === "string") 

            return n1.toString() + n2.toString();

        else 

            return n1 + n2

    }


    let mergeNumber = merge(2, 5, "as-number");

    let mergeNumber = merge(2, 5, "as-string");

    let mergeString = merge("hello", "world", "as-string");


    // 字面量类型(literal)

    let union3: 0 | 1 | 2

    union3 = 1;

    查看全部
  • let list1: number[] = [1, 2, 3, 4, 5]; // number数组类型

    let list2: Array<number> = [1, 2, 3, 4, 5]; // 泛型

    let list3= [1, 2, 3, 4, 5];


    let list4 = [1, "dd"];

    let list5: any[] = [1, "dss", true];  // any数组类型


    // tuple  固定长度、固定类型的array

    let person1: [number, string] = [1, "hhh"]; // 元组(特殊数组,固定长度,固定类型)

    查看全部
  • lite-server快速搭建本地服务器

    查看全部
  • 通过使用泛型,完美的保证代码中类型的一致性

    let message = <T>(arr: T[]) => {

       return arr[arr.length -1]

    }

    const a1 = message([1,2,3,4])

    const a2 = message(["1","2","3"])

    const a3 = message<string | number>(["a","b","c",4])


    let makeTuple = <T,Y>(x: T, y:Y) => [x, y]


    const v1 = makeTuple(1, "one")

    const v2 = makeTuple<number | string>(1, "one")

    查看全部
    0 采集 收起 来源:Generics 泛型

    2022-03-03

  • 类型适配(类型断言)Type Assertions

    let message : any;

    message = 'abc';

    message.endsWith('c'); // 此时不会生效,虽然上面已经指定了字段为字符串,但是字段默认初始类型为any.


    let ddd = (<string>message).endsWith('c') // 类型断言为string,此时可以调用字符串的方法了

    let ddd = (message as string).endsWith('c') // 类型断言为string,此时可以调用字符串的方法了

    查看全部
  • 联合类型(union)

    let union: string | number | boolean | string[] = 5

    let union: 0 | 1 | 2 //不仅联合类型确定了,值也确定了


    字面量类型(literal)

    let literal : 1 || '2' || true || [1,2,3]

    查看全部
  • let array: Array<number> = [1,2,3] // 泛型

    let array: any[] = [1,2,3,'ddd',true] // any数组类型

    let array: number[] = [1,2,3] // number数组类型

    let person1: [number, string] = [1,'ddd'] // 元组(特殊数组,固定长度,固定类型)

    查看全部
  • http://img1.sycdn.imooc.com//622073110001271712260704.jpg

    课程大纲

    查看全部
    0 采集 收起 来源:课程大纲

    2022-03-03

  • 高级类型

    查看全部
  • 类型记录

    查看全部
  • 11111

    查看全部
    0 采集 收起 来源:课程总结

    2022-02-24

  • 数组中只有0和1,每过1代,0旁边只有1个1,当前0会变成1。每过1代,0旁边有2个1,当前0还是0。 比如10001,经过1代,会变成11011,再过1代,还是11011 。 求一个数组经过M代以后的数组。函数定义是void f(int[] arr,int m) 。

    答案2022-01-08:

    x里有有限个0。 1x1,中间0,x中有2m个0变成1,最中间的0不会变成1。 1x,右0,x中有m个0变成1。 x1,左0,x中有m个0变成1。 时间复杂度:O(N)。 空间复杂度:O(1)。

    package mainimport "fmt"func main() {
        arr := []byte{0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0}
        f(arr, 2)
        fmt.Println(arr)
    }func f(arr []byte, m int) {    //找中间0
        oneIndexList := make([]int, 0)    for i, a := range arr {        if len(oneIndexList) == 2 {
                oneIndexList = oneIndexList[1:]
            }        if a == 1 {
                oneIndexList = append(oneIndexList, i)
            }        if len(oneIndexList) == 2 {            for j := oneIndexList[0] + 1; j <= oneIndexList[1]-1; j++ {                if j-oneIndexList[0] != oneIndexList[1]-j &&
                        (j-oneIndexList[0] <= m ||
                            oneIndexList[1]-j <= m) {
                        arr[j] = 1
                    }
                }
            }
        }
    查看全部
    0 采集 收起 来源:课程总结

    2022-02-24

举报

0/150
提交
取消
课程须知
学习中需要用到这些工具: —visual studio code 代码编辑器 —tsc TypeScript编译器 —nodejs SDK 你需要有这些基础: —可以使用原生JavaScript,有es6的基础知识更佳
老师告诉你能学到什么?
1、学习TypeScript基础知识 2、了解Typescriptg工作流程以及编译原理 3、掌握TypeScript开发配置以及各种常用工具 4、掌握前端静态类型思想 5、深入了解前端面对对象概念

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!