typescript 入门到放弃

背景

  1. js的面条代码扛不住了;
  2. es6的一些语法浏览器没法做兼容;
  3. 代码混乱入参检测问题得不到解决。

一些内容

  • 类型
  • 声明 @type/jquery declare
  • 函数
  • 泛型

类型

let tempVal:string|number = 'some Number'
// 数组
let arr:string[] = ['2']
let arr:Array<string> = ['2'] // 泛型


// 接口类型
interface Person {
  readonly id:  number;
  name: string;
  birthday?: string; // 可选
  [propName:string]: any; // 任意
}
let tom: Person = {
  name: 'tom', age: 20, gender: 'male',
}
// 函数接口
interface someFunction {
  (source:string, subString?:string): boolean
}

let add: someFunction;
add = function(source, subString='cat') {
  let temp:any;
  return <boolean>temp; // 类型判断 temp as boolean
}

// 命名空间
declare namespace GX {
  interface Person {
    name: string; 
    age: number
  }
}
const Bowen: GX.Person = {name: 'bowen',age:20}

// 别名 type
type Name = string;
type NameResolver = () => string;
type NameOrResolver = Name | NameResolver;

// 枚举 menu
enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};

注意点

  1. function 不需要指定返回类型
let someFunction = (temp:string)=> 'some thing'
  1. node 使用ts时需要引入
npm install @types/node --save-dev
  1. 内置对象
Boolean、Error、Date、RegExp,
Document、HTMLElement、Event、NodeList

版权声明:本文为qq_26728227原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。