
1.tsconfig.json配置文件
"compilerOptions": {
"target": "esnext",
"module": "esnext",
// 启用所有严格类型检查选项。
//启用 --strict相当于启用 --noImplicitAny, --noImplicitThis, --alwaysStrict, --strictNullChecks和 --strictFunctionTypes和--strictPropertyInitialization。
"strict": true,
// 允许编译器编译JS,JSX文件
"allowJs": false,
// 允许在JS文件中报错,通常与allowJS一起使用
"checkJs": false,
// 允许使用jsx
"jsx": "preserve",
"declaration": true,
//移除注解
"removeComments": true,
//不可以忽略any
"noImplicitAny": false,
//关闭 this 类型注解提示
"noImplicitThis": true,
//null/undefined不能作为其他类型的子类型:
//let a: number = null; //这里会报错.
"strictNullChecks": true,
//生成枚举的映射代码
"preserveConstEnums": true,
//根目录
//输出目录
"outDir": "./ts-out-dir",
//是否输出src2.js.map文件
"sourceMap": false,
//变量定义了但是未使用
"noUnusedLocals": false,
//是否允许把json文件当做模块进行解析
"resolveJsonModule": true,
//和noUnusedLocals一样,针对func
"noUnusedParameters": false,
// 模块解析策略,ts默认用node的解析策略,即相对的方式导入
"moduleResolution": "node",
//允许export=导出,由import from 导入
"esModuleInterop": true,
//忽略所有的声明文件( *.d.ts)的类型检查。
"skipLibCheck": true,
"baseUrl": ".",
"paths": {
"@/*": ["src/*"],
"~/*": ["typings/*"]
},
//指定默认读取的目录
//"typeRoots": ["./node_modules/@types/", "./types"],
"lib": ["ES2018", "DOM"]
},
//"files": [],
//include包含文件夹会被ts进行读取
"include": ["src", "typings", "auto-imports.d.ts"]
//exclude 可以去除include中指定的文件,不能去除file指定的文件
// "exclude": [
//// "src/src1.ts"
// ]
}
2.接口声明函数
interface fn {
(a;string, sub:number):boolean;
interval:number;
reset():void;
}
3. 抽象类 abstract class
1.抽象成员:父类中,可能知道有些成员必须存在,但是不知道该成员的值或者实现是什么,因此,需要一种强约束,让继承该类的子类必须实现该成员
2.抽象类:可以有抽象成员,这些抽象成员必须在子类中实现
3.设计模式:面对一些常见的场景,有一些固定的、经过多年实践的成熟方法,这些方法称之为设计模式。
4.模板模式:有些方法,所有的子类实现的流程完全一致,只是流程中的某个步骤的具体实现不一致,可以将该方法提取到父类,在父类中完成整个流程的实现,遇到实现不一致的方法时,将方法做成抽象方法
4.静态成员
静态成员是指附着在类上的成员(属于某个构造函数的成员 )用static修饰
5.静态方法中的this
1.实例方法中的this指向的是当前对象
2.静态方法中的this指向的是当前类