src/hello.ts

Summary

Maintainability
A
1 hr
Test Coverage
let isDone: boolean = false;
let decLiteral: number = 0o321;
let namee: string = 'blob';
let h: string = `hello`;
let r: string = `mey name is ${namee}`;
let listing: number[] = [1, 2, 3];
let listingg: Array<number> = [1, 2, 3];
let x: [string, number];
enum Color {
    Red = 1,
    Green = 2,
    Blue = 4
}
let c: Color = Color.Blue;
let no: any = 'eeeeee';

// /* tslint:disable only-arrow-functions*/

// 函数类型传统写法(函数类型完整写法)
let myAdd: (x: number, y: number) => number = function(
    xx: number,
    y: number
): number {
    return xx + y;
};

// 函数类型箭头函数写法(函数类型完整写法)
let myAdd2: (x: number, y: number) => number = (
    xx: number,
    y: number
): number => xx + y;

interface Xxx {
    (x: number): number;
    yy: number;
}

// 类型别名会给一个类型起个新名字。 起别名不会新建一个类型 - 它创建了一个新 名字来引用那个类型。
// @see https://www.tslang.cn/docs/handbook/advanced-types.html
type SearchFunc = (source: string, subString: string) => boolean;
interface SearchFuncs {
    (source: string, subString: string): boolean;
}

// https://www.tslang.cn/docs/handbook/functions.html
// 函数类型声明可以这样写
const caca = (a: string): number => +a;
let cac: SearchFunc = (a: string, b: string): boolean => !!(a + b);
let cacb: SearchFunc = (a, b) => !!(a + b); // 这叫做“按上下文归类”,是类型推论的一种。 它帮助我们更好地为程序指定类型。
let cacc: SearchFunc = function(a: string, b: string): boolean {
    return !!(a + b);
};
let cacx: (source: string, subString: string) => boolean = (
    a: string,
    b: string
): boolean => !!(a + b);