背景
- js的面条代码扛不住了;
- es6的一些语法浏览器没法做兼容;
- 代码混乱入参检测问题得不到解决。
一些内容
- 类型
- 声明 @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};
注意点
- function 不需要指定返回类型
let someFunction = (temp:string)=> 'some thing'
- node 使用ts时需要引入
npm install @types/node --save-dev
- 内置对象
Boolean、Error、Date、RegExp,
Document、HTMLElement、Event、NodeList
版权声明:本文为qq_26728227原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。